本章节主要是包括通过Python安装Mysql驱动(mysqlclient),通过Django创建app,更新数据库模型。
1.安装 mysql 驱动。如果你没安装 mysql 驱动,可以执行以下命令安装:
pip install mysqlclient
2.通过Django创建项目。可以执行以下命令安装:
python django-admin.py startproject testModel
3.进入创建项目,通过Django创建app。可以执行以下命令安装:
python django-admin.py startapp TesApp
4.数据库及模型相关配置。
(1)修改settings.py数据库及app名称配置。相关配置如下:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'TesApp', ] DATABASES = { 'default': { #'ENGINE': 'django.db.backends.sqlite3', #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', # 或者使用 mysql.connector.django 'NAME': 'He', 'USER': 'root', 'PASSWORD': 'root', 'HOST':'localhost', 'PORT':'3306', } }
(2)数据库更新及模型相关配置。
在刚才创建TesApp文件夹的模型文件models.py中修改代码,代码如下:
from django.db import models # Create your models here. class Test(models.Model): uname = models.CharField(max_length=20)
初始系统默认表及更新新创数据库模型,cmd命令如下:
python manage.py migrate # 创建表结构
python manage.py makemigrations TesApp # 让 Django 知道我们在我们的模型有一些变更
python manage.py migrate TesApp # 创建表结构
(3)入口文件创建相关配置。
在TestModel文件夹同级settings.py目录中创建home.py文件,代码如下:
#coding=utf-8 from django.http import HttpResponse from TesApp.models import Test #测试添加数据 def addData(request): test1 = Test(uname='tom') test1.save() return HttpResponse("数据添加成功!") #测试删除数据 def delData(request): #删除表单数据方法1 test1 = Test.objects.get(id=2) test1.delete() #删除表单数据方法2 #Test.objects.filter(id=1).delete() #删除表中所有数据 #Test.objects.all().delete() return HttpResponse("数据删除成功!") #测试修改数据 def updateData(request): #修改数据方法1(修改数据可以使用 save() 或 update():) test1 = Test.objects.get(id=2) test1.uname="mike" test1.save() #修改数据方法2 #Test.objects.filter(id=1).update(uname='Google') #修改数据方法3 #Test.objects.all().update(uname='Google') return HttpResponse("数据修改成功!") #查询数据 def queryData(request): # 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM TABLE response1= Test.objects.all() showData(response1) # filter相当于SQL中的WHERE,可设置条件过滤结果,相当于SQL中的SELECT * FROM TABLE WHERE ID=1 response2=Test.objects.filter(id=1) #showData(response2) # 获取单个对象,相当于SQL中的SELECT * FROM TABLE WHERE ID=1 response3 = Test.objects.get(id=2) #showData(response3) #数据排序 response4 = Test.objects.order_by("id") #showData(response4) #限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2; response5 = Test.objects.order_by('uname')[0:2] #showData(response5) # 上面的方法可以连锁使用 response6 = Test.objects.filter(uname="runoob").order_by("id") #showData(response6) result="" result2="" #查询列表 for item in response2: result +="id:"+str(item.id)+",uname:"+item.uname+" " #查询单条数据 result2="id:"+str(response3.id)+",uname:"+response3.uname+" " return HttpResponse("<p>" + result2 + "</p>")
在urls.py中配置home.py映射url地址,代码如下:
#coding=utf-8 from django.conf.urls import url from django.contrib import admin from . import home urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^addData$', home.addData), url(r'^delData$', home.delData), url(r'^updateData$', home.updateData), url(r'^queryData$', home.queryData), ]
(5)cmd启动项目,打开页面地址:
python manage.py runserver
在浏览器输入如下地址,就可看见:
http://127.0.0.1:8000/addData