前言
本篇简单介绍django中对数据库的操作.
create数据库表
上一篇中使用python manage.py runserver 8000运行django项目, 虽然项目成功运行, 但发现终端中有一些警告信息.
这些警告信息表示此项目有数据库结构的设计但是没有应用到数据库中.
下面先介绍两个命令.
python manage.py makemigrations
python manage.py migrate
控制台中分别执行这两行命令
控制台输出如下
bogon:HelloWorld zhaodan$ ls
HelloWorld db.sqlite3 manage.py mytest
bogon:HelloWorld zhaodan$ python manage.py makemigrations
No changes detected
bogon:HelloWorld zhaodan$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, sessions, contenttypes
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... 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 sessions.0001_initial... OK
bogon:HelloWorld zhaodan$ open .
打开sqlite数据库文件所在目录
sqlitedir.png与iOS开发中一模一样的sqlite数据库文件..., 使用工具打开数据库文件.我使用的工具叫做 SQLite Professional,
sqlite0.png能够看到已经有了很多表.
我们一行代码都没有写, 这些这些表是从哪里来的?
上面的两行命令
python manage.py makemigrations
python manage.py migrate
是用来根据数据库定义的代码生成数据库定义语句并执行的.
python manage.py makemigrations 会检查数据库定义的代码是否正确.
django为我们提供了一套用户系统. 包含user, usergroup, permissions等常用部分.
这些表的代码来自这里.
auth0.png auth1.png仿照auth.models文件的内容 创建一个新表
user0.png修改settings.py 文件
INSTALLED_APPS中添加mytest模块
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mytest'
]
运行
python manage.py makemigrations
python manage.py migrate
最终效果
user1.png以后会介绍具体如何编写models.py文件中的各个表, 编写时有哪些注意事项, models.py 文件被映射到数据库后, 还能修改已经被映射过的字段吗?
网友评论