第四章、模型


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名

    使用以下命令可以进行模型的调试:

相关