1、配置MySQLhtml
Django 的默认数据库是sqlite3,具体怎么样不知道了,反正是没用过,这里改成MySQL,作法也很简单,只须要修改配置文件便可python
1.项目名文件下settings.pymysql
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/…sql
2.项目名文件下 __ init__.py数据库
import pymysql
pymysql.install_as_MySQLdb()
复制代码
2、建立modelsdjango
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 类型json
一、AutoField 一个自增的IntegerField,通常不直接使用,Django会自动给每张表添加一个自增的primary key。bash
二、BigIntegerField 64位整数, -9223372036854775808 到 9223372036854775807。默认的显示widget 是 TextInput.app
三、BinaryField ( Django 1.6 版本新增 ) 存储二进制数据。不能使用 filter 函数得到 QuerySetjsp
四、BooleanField True/False,默认的widget 是 CheckboxInput。 若是须要置空,则必须用 NullBooleanField 代替。 Django 1.6 修改:BooleanField 的默认值 由 False 改成 None,在 default 属性未设置的状况下。
五、CharField 存储字符串。必须有 max_length 参数指定长度。默认的form widget 是 TextInput 若是字符串巨长,推荐使用 TextField。
六、CommaSeparatedIntegerField 一串由逗号分开的整数。必须有 max_length 参数。
七、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 设置。
八、DateTimeField 日期+时间。与python里的 datetime.datetime 实例同。经常使用附加选项和DateField同样。 默认 form widget 是一个 TextInput
九、TextField 大文本,巨长的文本。默认的 form widget 是 Textarea。
3、同步数据库
终端输入命令
# 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
复制代码
4、建立超级管理员
python manage.py createsuperuser # 按照提示输入用户名和对应的密码就行了邮箱能够留空,用户名和密码必填
python manage.py changepassword username # 修改 用户密码
复制代码
建立完成以后,启动项目登录admin后台
http://127.0.0.1:8888/admin
复制代码
在这里咱们也能够查看、维护数据
5、数据查询
如今表里面插入两条数据,在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的大体流程就是这样了