一、创建子应用
-
创建子应用
python manage.py startapp Article
-
注册子应用
在settings.py 的文件中的 INSTALLED_APPS 下注册子应用
配置数据库
- 这里使用的是mysql 数据库,在settings 文件里配置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'blog',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
-
在mysql 数据库里创建一个 blog 库
create database blog charset=utf8; -
检查:python manage.py check
django 默认使用mysqldb作为mysql数据库操作模块,python3默认采用pymysql导致的兼容问题
需要在项目主目录的__init__.py当中加入两行代码
import pymysql
pymysql.install_as_MySQLdb()
编写模型
from django.db import models
from ckeditor.fields import RichTextField
# Create your models here.
GENDER_LIST = (
(0,'女'),
(1,'男')
)
# 作者类
class Author(models.Model):
name = models.CharField(max_length=32,verbose_name='作者姓名')
gender = models.IntegerField(choices=GENDER_LIST,verbose_name='性别')
age = models.IntegerField(verbose_name='年龄')
email = models.EmailField(verbose_name='邮箱')
class Meta:
db_table = 'authors'
# 文章类型
class Type(models.Model):
name = models.CharField(max_length=32)
description = models.TextField()
class Meta:
db_table = 'type'
# 文章类
class Article(models.Model):
title = models.CharField(max_length=32)
date = models.DateField(auto_now=True)
content = models.TextField()
description = models.TextField()
author = models.ForeignKey(to=Author,on_delete=models.CASCADE)
type = models.ManyToManyField(to=Type)
class Meta:
db_table = 'article'
同步表结构
写完模型之后需要在数据库中同步生成对应的表结构,
- 先生成迁移文件
代码:python manage.py makemigrations - 迁移文件,生成表结构
代码:python manage.py migrate
站点管理的配置和使用
- 创建超级用户
代码:python manage.py createsuperuser
创建过程需要设置账号,密码等 - 安装模型类
在创建的类中传入模型类名
- 访问 127.0.0.1:8000/admin 登录后台管理
- 站点管理管理数据
- 后台站点,中文显示
- 站点管理管理数据