一、环境版本信息:
操作系统:windows10
Django版本:2.0.5
Python版本:3.6.4
Mysql版本: 5.5.53
二、安装Mysqlclient:
1、为什么安装Mysqlclient:
Mysqlclient是MySQLdb连接库的一个分支,它修复了一些在MySQLdb连接路中存在的bug,并添加了对Python3的支持。Mysqlclient的底层是由C编写实现的,相比于PyMySQL,运行速度快一些。
2、使用命令:pip install mysqlclient
三、修改配置文件settings.py
DATABASES是设置MySQL的信息,NAME是数据库名,USER是用户名,PASSWORD是登录密码,HOST是localhost或者127.0.0.1,PORT是端口号(默认是3306)
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES ={
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test_django', 'USER': 'root', 'PASSWORD':'root', 'HOST':'127.0.0.1', 'PORT':'3306', } }
四、修改在App文件夹下的models.py
用来创建表blog_users 字段blog_username 和blog_link,创建后它会自动创建id字段
from django.db importmodels
# Create your models here.
classusers(models.Model):
blog_username = models.CharField(max_length=20)
blog_link = models.CharField(max_length=50)
五、在命令行中输入以下命令
python manage.py migrate #执行迁移
此时数据库会生成系统自定义的表如下图:
接下来在命令行中依次输入:
python manage.py makemigrations App #生成迁移
python manage.py migrate App #执行迁移
此时再在数据库中可以看到咱们自定义的表:app_users 插入一条数据如下图:
六、修改views.py和index.html文件
from django.shortcuts importrender
from App.models importusers
# Create your views here.
defindex(request):
user = users.objects.get(id=1) # 找到id==1的数据
context = {'user':user} return render(request, 'index.html', context)
{% load static %}
博客昵称:{{ user.blog_username }}
博客链接:{{ user.blog_link }}
七、开启服务 python manage.py runserver 默认端口8000
八、注意事项
若你将自己建的表例如:app_users删了想利用python manage.py migrate App重新创建该表会出现 django.db.utils.ProgrammingError: (1146, u"Table'' doesn't exist") 错误
1、问题原因
django在第一次迁移的时候新建表,后面再执行该命令都不会新建表,而是只检查字段等等的变化,而我们删除了这张表,django检查不到该字段就会出现错误。
2、解决方案
第一步:在该App文件夹下的migrations文件夹中保留前两个文件其余全删掉,例如:
第二步:将数据库 django_migrations这张表中的 app等于与应用名一样的数据删除 这里我的应用名是 App
第三部:再次执行命令
python manage.py makemigrations App #生成迁移
python manage.py migrate App #执行迁移