Django基础3--数据库配置及创建模型
2020-08-26 本文已影响0人
伊洛的小屋
1.数据库配置
- 打开 settings.py 。这是个包含了 Django 项目设置的 Python 模块,配置文件使用 SQLite 作为默认数据库,后面实际开发项目中也可以换成其他的数据库(MySQL,MongoDB....)
-
ENGINE
-- 可选值有'django.db.backends.sqlite3'
,'django.db.backends.postgresql'
,'django.db.backends.mysql'
,或'django.db.backends.oracle'
2.注册APP
- settings.py 下INSTALLED_APPS都是注册的应用
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin', 管理员站点
'django.contrib.auth', 认证系统
'django.contrib.contenttypes', 内容类型框架
'django.contrib.sessions', 会话框架
'django.contrib.messages', 消息框架
'django.contrib.staticfiles', 管理静态文件框架
3.数据库迁移
# 伊洛Yiluo 公众号:伊洛的小屋
# https://yiluotalk.com/
python manage.py migrate
-
migrate
命令只会为在INSTALLED_APPS
里声明了的应用进行数据库迁移
(django) ➜ AutoPlatform python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, 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 auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
- 如上迁移完成
-
数据库里已经生成对应的表
4.创建模型
- 定义模型 - 也就是数据库结构设计和附加的其它元数据
- 设计自己的模型,首先看看需要哪些数据
# 作者:伊洛Yiluo 公众号:伊洛的小屋
# 个人主页:https://yiluotalk.com/
# 博客园:https://www.cnblogs.com/yiluotalk/
from django.db import models
# Create your models here.
class ProjectInfo(models.Model):
""" 项目信息模型 """
project_name = models.CharField(max_length=30)
dev = models.CharField(max_length=20)
tester = models.CharField(max_length=20)
add_data = models.DateTimeField(auto_now_add=True)
def __str__(self):
# 返回项目名称
return self.project_name
- 创建一个项目信息的类继承
model
,其中属性分别为项目名称,开发人员,测试人员,添加日期 - DateTimeField记录日期和时间的数据,
auto_now_add=True
指的是每当用户创建新主题时,这都让Django将这个属性自动设置成当前日期和时间 - Django调用方法
__str__()
来显示模型的简单表示
5.激活模型
- 要使用模型,必须让Django将应用程序包含到项目中,来打开settings.py,找到下面这段代码
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
- 将自己的应用添加到
INSTALLED_APPS
中
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# My app
'autoapi',
]
- 让Django修改数据库,使其能够存储模型
(django) ➜ AutoPlatformpython manage.py makemigrations autoapi
Migrations for 'autoapi':
autoapi/migrations/0001_initial.py
- Create model ProjectInfo
- 命令makemigrations让Django确定该如何修改数据库,使其能够存储与我们定义的新模型相关联的数据。输出表明Django创建了一个名为0001_initial.py的迁移文件
- 再次migrate一下
(django) ➜ AutoPlatform python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, autoapi, contenttypes, sessions
Running migrations:
Applying autoapi.0001_initial... OK
- 迁移OK
6.总结
模型需要这三步
- 编辑
models.py
文件,改变模型。 - 运行 [
python manage.py makemigrations
] 为模型的改变生成迁移文件。 - 运行 [
python manage.py migrate
] 来应用数据库迁移。
欢迎下方【戳一下】【点赞】
Author:伊洛Yiluo
愿你享受每一天,Just Enjoy !