如果使用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的列项

 

版权声明:本文为zhuifeng-mayi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhuifeng-mayi/articles/8989768.html