一、配置MySQL
Django 的默认数据库是sqlite3,具体怎么样不知道了,反正是没用过,这里改为MySQL,做法也很简单,只需要修改配置文件即可
1.项目名文件下settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'blog_table', #你的数据库名称
'USER': 'root', #你的数据库用户名
'PASSWORD': '123456', #你的数据库密码
'HOST': 'localhost', #你的数据库主机,留空默认为localhost
'PORT': '3306', #你的数据库端口
}
}
更多数据库配置参考:docs.djangoproject.com/en/2.0/ref/…
2.项目名文件下 __ init__.py
import pymysql
pymysql.install_as_MySQLdb()
二、创建models
from django.db import models
# Create your models here.
class Article(models.Model):
#唯一ID
article_id = models.AutoField(primary_key=True)
#文章标题
title = models.TextField(max_length=100)
#文章摘要
brief_content = models.TextField(max_length=200)
#文章内容
content = models.TextField(max_length=2000)
#文章发布日期
publish_date = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
常用model field 类型
1、AutoField 一个自增的IntegerField,一般不直接使用,Django会自动给每张表添加一个自增的primary key。
2、BigIntegerField 64位整数, -9223372036854775808 到 9223372036854775807。默认的显示widget 是 TextInput.
3、BinaryField ( Django 1.6 版本新增 ) 存储二进制数据。不能使用 filter 函数获得 QuerySet
4、BooleanField True/False,默认的widget 是 CheckboxInput。 如果需要置空,则必须用 NullBooleanField 代替。 Django 1.6 修改:BooleanField 的默认值 由 False 改为 None,在 default 属性未设置的情况下。
5、CharField 存储字符串。必须有 max_length 参数指定长度。默认的form widget 是 TextInput 如果字符串巨长,推荐使用 TextField。
6、CommaSeparatedIntegerField 一串由逗号分开的整数。必须有 max_length 参数。
7、DateField 日期,与python里的datetime.date 实例同。有以下几个可选的选项,均为bool类型: DateField.auto_now: 每次执行 save 操作的时候自动记录当前时间,常作为最近一次修改的时间 使用。注意:总是在执行save 操作的时候执行,无法覆盖。 DateField.auto_now_add: 第一次创建的时候添加当前时间。常作为 创建时间 使用。注意:每次create 都会调用。 默认的form widget 是 TextInput。 注意:设置auto_now 或者 auto_now_add 为 True 会导致当前自动拥有 editable=False 和 blank = True 设置。
8、DateTimeField 日期+时间。与python里的 datetime.datetime 实例同。常用附加选项和DateField一样。 默认 form widget 是一个 TextInput
9、TextField 大文本,巨长的文本。默认的 form widget 是 Textarea。
三、同步数据库
终端输入命令
# 1. 创建更改的文件
python manage.py makemigrations
# 2. 将生成的py文件应用到数据库
python manage.py migrate

我们的表已经在数据库生成,其它的应该是django的系统表
这里需要注意的是django不负责数据库编码,所以新建数据库时一定要指定好编码,不然后面操作中文字符会报错
导出数据 导入数据
python manage.py dumpdata appname > appname.json
python manage.py loaddata appname.json
把数据库中的表生成对应的model
python manage.py inspectdb
四、创建超级管理员
python manage.py createsuperuser # 按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填
python manage.py changepassword username # 修改 用户密码
创建完成之后,启动项目登陆admin后台
http://127.0.0.1:8888/admin

在这里我们也可以查看、维护数据
五、数据查询
现在表里面插入两条数据,在admin后台添加或者在数据库直接添加
django可以直接渲染模板页面,类似于jsp那种
views.py
from django.shortcuts import render
from django.http import HttpResponse
from blog.models import Article
def get_all_article(request):
#获取所有数据
article_list = Article.objects.all()
#结合一个给定的模板和一个给定的上下文字典, 并返回一个渲染后的HttpResponse对象
return render(request, 'blog/articles.html',{
'article_list': article_list
})
记得添加应用的路由
path('get_all_article', blog.views.get_all_article),
编写页面,django 有很多自己的语法,感兴趣可以网上找一下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
{% for article in article_list %}
<tr>
<td>{{article.title}}</td>
<td>{{article.brief_content}}</td>
<td>{{article.publish_date}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
访问测试
http://127.0.0.1:8888/blog/get_all_article

可以正常取出数据,配置MySQL的大致流程就是这样了