第四章、模型
1、数据库配置:在setting.py中数据库设置连接信息设置如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test_hitchhiker', # 新建数据库名 'USER': 'test_mysql', # 数据库登录名 'PASSWORD': '1zxasa2wsx!', # 数据库登录密码 'HOST': 'sh-cdb-shusuy23.sql.tencentcdb.com', # 数据库所在服务器ip地址 'PORT': '6118', # 监听端口 默认3306即可 } }
在项目下的__init__.py中添加数据库导入:
import pymysql
# ***配置mysql引用
pymysql.install_as_MySQLdb()
2、创建一个应用:创建应用命令:python manage.py startapp books,创建成功会生成books应用文件夹,文件夹下有对应的py文件
1)在应用下设计一个基础模型:书籍/作者/出版商
一个作者有姓,有名及email地址。
出版商有名称,地址,所在城市、省,国家,网站。 书籍有书名和出版日期。 它有一个或多个作者(和作者是多对多的关联关系[many-tomany]), 只有一个出版商(和出版商是一对多的关联关系[one-to-many],也被称作外键 [foreign key])
2)打开books下的models.py文件,输入以下代码:
from django.db import models # Create your models here. class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharField(max_length=50) city = models.CharField(max_length=60) state_province = models.CharField(max_length=30) country = models.CharField(max_length=50) website = models.URLField() class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField() class Book(models.Model): title = models.CharField(max_length=100) authors = models.ManyToManyField(Author) publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)# 级联删除 publication_date = models.DateField()
3)应用(模块)配置
打开项目的setting.py,在INSTALLED_APPS下添加刚创建的book
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'books', ]
4)创建表
a、执行命令:python manage.py makemigrations 解析模型并生成sql记录的py文件,可在后指定app名
b、执行命令:python manage.py migrate 执行sql到数据库,可在后指定app名
使用以下命令可以进行模型的调试: