Django-数据库的创建和配置
如果使用sqllist数据库,则不需要对Django进行改动,因为Django默认是sqllist数据库,如果是您当前所用的是mysql数据库,则需要对Django进行操作设置,才能使用mysql数据库
由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替
如下设置放置的与project同名的配置的 __init__.py文件中
1 import pymysql 2 pymysql.install_as_MySQLdb()
然后再对数据库进行配置,在与project同名配置的settings.py文件中修改DATABASES文件
1 DATABASES = { 2 \'default\': { 3 \'ENGINE\': \'django.db.backends.mysql\', 4 \'NAME\':\'数据库名\', 5 \'USER\': \'用户名\', 6 \'PASSWORD\': \'密码\', 7 \'HOST\': \'计算机名\', 8 \'PORT\': \'3306(一般win7内数据库所在的端口地址)\', 9 } 10 }
现在Django的数据库配置就算完成了
在Django数据库中创建类
在Django的app文件中的models.py里进行创建
1 from django.db import models 2 class UserInfo(models.Model): 3 4 username=models.CharField(max_length= 32) 5 password=models.CharField(max_length= 64)
之后,需要在在与project同名配置的settings.py文件中修改INSTALLED_APPS文件
就是在INSTALLED_APPS里添加你所创建的app名字
1 INSTALLED_APPS = [ 2 \'django.contrib.admin\', 3 \'django.contrib.auth\', 4 \'django.contrib.contenttypes\', 5 \'django.contrib.sessions\', 6 \'django.contrib.messages\', 7 \'django.contrib.staticfiles\', 8 \'cmdb\', #我所创建的app名字 9 ]
创建类之后 需要在pycharm界面下面的Terminal里执行
1 python manage.py makemigrations app(你所创建的app名字) 2 python manage.py migrate
这两种命令,那么数据库的一个表算是创建完成
如果想在上面已经创建完的这个表里添加列项,则下面的做法是不对的
from django.db import models class UserInfo(models.Model): username=models.CharField(max_length= 32) password=models.CharField(max_length= 64) email=models.CharField (max_length= 64) #新添加的项
#执行python manage.py makemigrations #执行python manage.py migrate
正确的方法是:执行上面的做法之后,pycharm会提示:
You are trying to add a non-nullable field \’email\’ to userinfo without a default; we can\’t do that (the database needs something to populate e
xisting rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
这是两种帮助你实现创建一个列项的方法,在之后的选项中,我们应做如下操作
Please select a valid option: 1
Please enter the default value now, as valid Python
The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now
Type \’exit\’ to exit this prompt
>>> “123@qq.com”
Migrations for \’cmdb\’:
cmdb\migrations\0002_userinfo_email.py
– Add field email to userinfo
(venv) G:\Html_3>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, cmdb, contenttypes, sessions
Running migrations:
Applying cmdb.0002_userinfo_email… OK
这样我们就成功在表里添加了一个名为email的列项