django有默认自带的数据库,当然也可以用其他的数据库,修改数据库的方式也很简单是需要在setting.py修改
DATABASES这里面的参数就可以了
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
在blog目录下的model.py创建数据库
写下代码,创建两个属性一个title最大长度为64默认为biaoti,一个content可以为空
from django.db import models
# Create your models here.
class Article(models.Model):
title = models.CharField(max_length=64,default='biaoti')
content = models.TextField(null=True)
我这里没有创建主键django会自动生成一个主键,所以不用担心缺失主键的问题
下面我们使用两个命令创建数据库
参考
python manage.py makemigrations这个命令是记录我们对models.py的所有改动,并且将这个改动迁移到migrations这个文件下生成一个文件例如:0001文件,如果你接下来还要进行改动的话可能生成就是另外一个文件不一定都是0001文件,他会在你的最近一次迁移文件加一,比如上次你的迁移文件是0001那么这次你的迁移文件就是0002.
这个命令并没有作用到数据库,他只是记录你的数据库需要更改的地方也就是你的model更改的东西,所以我们需要执行python manage.py migrate 命令 这条命令的主要作用就是把这些改动作用到数据库也就是执行migrations里面新改动的迁移文件更新数据库,比如创建数据表,或者增加字段属性
重点生成的迁移文件不要修改或者删除他。每次执行migrate相应的就会在数据库中生成一条相关记录,每次执行migrate就会查询数据库中最后一次执行的迁移文件,然后再执行你新生成的。
py manage.py makemigrations
py manage.py migrate
运行结果
E:\untitled\python\django\myProject>manage.py makemigrations
Migrations for 'blog':
blog\migrations\0001_initial.py
- Create model Article
E:\untitled\python\django\myProject>manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying blog.0001_initial... OK
Applying sessions.0001_initial... OK
可以用可视工具查看SQLite Expert Professional查看