python测试开发django-2 链接mysql
数据库链接,上篇文章中简单对sqlite3进行了操作使用 (上篇:https://www.cnblogs.com/wfwt180801-/p/12044332.html)
Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。本篇以mysql为例简单介绍django连接mysql进行数据操作
这里使用的mysql 版本为8.0.11 安装参考 https://www.cnblogs.com/wfwt180801-/p/10557292.html
PyMySQL 安装
pip install -i https://pypi.douban.com/simple PyMySQL 我这里使用了豆瓣源安装
项目目录仅供参考
django 数据库配置
settings.py 文件中找到 DATABASES 配置项, django默认连接sqllite
我们连接mysql需要账户密码,也就是之前安装mysql的root用户名,和自己设置的密码,NAME是数据库的名称,连接配置如下:
NAME:'DjangoModel' 对应库名
需要创建或指定现有库名
1.创建 djangoModel库
-create database DjangoModel charset=utf8;
-添加mysql驱动
-DAtabase —— + ——Data Source——mysql
-添加 库名,mysql账号密码,进行测试,确定添加,添加成功
-项目目录下初始化文件中模拟mysqldb ,这里使用pymysql
-需要安装pymysql
-pip install pymysql 我这的安装版本为Version: 0.9.3
-项目初始化文件路径...\DjangoModel\__init__.py文件
-import pymysql
-pymysql.install_as_MySQLdb()#
-执行迁移
-python manage.py migrate
至此打开mysql试图查看就可看到迁移过去的表数据
新建表,定义数据模型 ...\DjangoModel\App\models.py 中代码如下
#生成迁移文件、执行迁移生成数据库表
-python manage.py makemigrations
-生成的迁移文件在应用目录下migrations中 (...\DjangoModel\App\migrations)
-生成迁移文件报错
-生成迁移文件出错 No changes detected,说明在根目录中settings中没有注册子应用
E:\web_djo\hellodjango>python manage.py makemigrations
No changes detected
-如何注册?
-执行迁移
-python manage.py migrate
迁移后查看mysql视图中看到我们新建的表People
models 使用了orm技术
-object Relational Mapping 对象关系映射
-将业务逻辑进行了一个解耦合
-object.save()保存
-object.delete()删除
使用封装的模板类创建点数据
...\DjangoModel\App\urls.py
...\DjangoModel\App\views.py 文件中代码如下
urls.py
from django.conf.urls import url
from App import views
urlpatterns =[
url(r'^addpeople/',views.add_peole),
]
views.py
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
from App.models import Person
def add_peole(request):
for i in range(15):
people =Person()
flag=random.randrange(100)
people.p_naem = "Tom%d" % i
people.p_age=flag
people.p_sex=flag % 2
people.save()
return HttpResponse('批量创建成功')
启动项目 python manage.py runserver
浏览器访问 http://127.0.0.1:8000/App/addpeople/ 此时我可以看到给出的提示信息,批量创建成功
那么是否真的创建成功了呢?
打开mysql视图查看是否有数据,如果要是没有数据,点击刷新或者cmd/nvcat下切换库中查看是否有数据了