在Django框架下,其python中默认使用的是sqlite数据库,因此这里我们更改为更常用的轻量型的MYSQL.

首先,在Linux系统中安装好mysql:


sudo apt-get install mysql-server



然后按照步骤操作即可.详细细节就自行百度了.接着在python环境中安装pymysql包:


pip install pymysql



此时我们接着需要配置Django相关配置文件,主要是setting.py文件:

更改原来默认文件内容为:

django mysqlclient文档 django使用mysql_python django 博客 配置

其实就是在setting里面配置指定使用mysql数据库,使用数据库名,使用者,密码,ip地址,端口.

接着在__init__.py文件加上:


import pymysql

pymysql.install_as_MySQLdb()

在setting.py文件中添加要生成的应用名称:

django mysqlclient文档 django使用mysql_mysql_02

然后用以下的命令生成相关应用文件:

django mysqlclient文档 django使用mysql_mysql_03

然后在生成的myapp1文件下的models.py文件上使用models类操作数据库数据,并且将其关联起来


#models.py
from django.db import models

# Create your models here.

class Grades(models.Model):
	g_name = models.CharField(max_length=20)
	g_date = models.DateTimeField()
	g_girlnum = models.IntegerField()
	g_boynum = models.IntegerField()
	isDelete = models.BooleanField(default=False)

class Students(models.Model):
	s_name = models.CharField(max_length=20)
	s_gender = models.BooleanField(default=True)
	s_age = models.IntegerField()
	s_contend = models.CharField(max_length=20)
	isDelete = models.BooleanField(default=False)
	# 关联外界
	s_grade = models.ForeignKey("Grades", on_delete=models.CASCADE)

其次将其生成数据库迁移文件:

django mysqlclient文档 django使用mysql_django_04

查看数据库生成的表:

django mysqlclient文档 django使用mysql_django_05

django mysqlclient文档 django使用mysql_django_06

生成两个空表,接着在启动相应python shell 操作往数据库里面添加数据

django mysqlclient文档 django使用mysql_数据库_07

查看数据库表,得到更新的数据

django mysqlclient文档 django使用mysql_django_08

继续添加数据,并且查看

django mysqlclient文档 django使用mysql_mysql_09

django mysqlclient文档 django使用mysql_django_10

django mysqlclient文档 django使用mysql_数据库_11

包含比较敏感字眼,在此就不显示了

然后讲整个应用run起来

django mysqlclient文档 django使用mysql_django_12

在浏览器上打开:127.0.0.1:8000

在这之前我们配置setting.py文件,使其支持中文显示

django mysqlclient文档 django使用mysql_数据库_13

效果:

django mysqlclient文档 django使用mysql_python django 博客 配置_14

但是每次需要一些对发布公告的操作时候,都需要很复杂重复的添加修改等操作,我们希望可以像界面一样实现可视化操作,那么Django也提供了这样的支持:

添加超级管理员:

django mysqlclient文档 django使用mysql_mysql_15

然后在浏览器登入:127.0.0.1:8000/admin

django mysqlclient文档 django使用mysql_django_16

django mysqlclient文档 django使用mysql_数据库_17


接下来我们展示如何管理我们的数据表:

在myapp1文件夹下的admin.py文件中加入注册模型代码:


# admin.py
from django.contrib import admin

# Register your models here.
# 从当前导入模型
from .models import Grades,Students
# 进行注册
admin.site.register(Grades)
admin.site.register(Students)


django mysqlclient文档 django使用mysql_django_18


django mysqlclient文档 django使用mysql_mysql_19



我们把界面定义的更友好一些:

我们修改admin.py


# admin.py
from django.contrib import admin

# Register your models here.
# 从当前导入模型
from .models import Grades,Students
# 进行注册

class GradesAdmin(admin.ModelAdmin):
	# 列表属性添加
	# 列表
	list_display = ['pk', 'g_name', 'g_date', 'g_girlnum', 'g_boynum', 'isDelete']
	# 过滤器
	list_filter = ['g_name']
	# 搜索
	search_fields = ['g_name']
	# 分页
	list_per_page = 5
	
	# 添加,修改属性,这两个不能同时使用
	# 规定属性的先后顺序
	# fields= ['g_girlnum', 'g_boynum', 'g_date', 'g_name', 'isDelete']
	# 给属性分组
	fieldsets = [
		("num", {"fields":["g_girlnum", "g_boynum"]}),
		("base", {"fields":["g_name", "g_date", "isDelete"]})
	]


admin.site.register(Grades, GradesAdmin)
admin.site.register(Students)

效果分别如下:

django mysqlclient文档 django使用mysql_python django 博客 配置_20

django mysqlclient文档 django使用mysql_python django 博客 配置_21

django mysqlclient文档 django使用mysql_数据库_22

django mysqlclient文档 django使用mysql_数据库_23

django mysqlclient文档 django使用mysql_python django 博客 配置_24

django mysqlclient文档 django使用mysql_mysql_25

django mysqlclient文档 django使用mysql_python django 博客 配置_26

django mysqlclient文档 django使用mysql_数据库_27

同时数据库也同步更新了数据

下面把Students类也关联进来:


from django.contrib import admin

# Register your models here.
# 从当前导入模型
from .models import Grades,Students
# 进行注册

class GradesAdmin(admin.ModelAdmin):
	# 列表属性添加
	# 列表
	list_display = ['pk', 'g_name', 'g_date', 'g_girlnum', 'g_boynum', 'isDelete']
	# 过滤器
	list_filter = ['g_name']
	# 搜索
	search_fields = ['g_name']
	# 分页
	list_per_page = 2
	
	# 添加,修改属性,这两个不能同时使用
	# 规定属性的先后顺序
	# fields= ['g_girlnum', 'g_boynum', 'g_date', 'g_name', 'isDelete']
	# 给属性分组
	fieldsets = [
		("num", {"fields":["g_girlnum", "g_boynum"]}),
		("base", {"fields":["g_name", "g_date", "isDelete"]})
	]


class StudentsAdmin(admin.ModelAdmin):
	# 列表属性添加
	# 列表
	list_display = ['pk', 's_name', 's_gender', 's_age', 's_contend', 'isDelete']
	# 过滤器
	list_filter = ['s_name']
	# 搜索
	search_fields = ['s_name']
	# 分页
	list_per_page = 2
	
	# 添加,修改属性,这两个不能同时使用
	# 规定属性的先后顺序
	# fields= ['g_girlnum', 'g_boynum', 'g_date', 'g_name', 'isDelete']
	# 给属性分组
	fieldsets = [
		("num", {"fields":["s_name", "s_contend"]}),
		("base", {"fields":["s_age", "s_gender", "isDelete"]})
	]


admin.site.register(Grades, GradesAdmin)
admin.site.register(Students, StudentsAdmin)


django mysqlclient文档 django使用mysql_django_28

django mysqlclient文档 django使用mysql_mysql_29