学习表关系的序列化和反序列表查询之前,新建项目的准备工作及环境搭建的配置。

配置:settings.py

INSTALLED_APPS = [
    # ...
    'rest_framework',
]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dg_proj',
        'USER': 'root',
        'PASSWORD': '123',
    }
}

# 连接mysql数据库

"""
任何__init__文件
import pymysql
pymysql.install_as_MySQLdb()
"""

# 国际化处理

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

# 静态文件的环境配置
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

路由:urls.py

# 主路由url

from django.conf.urls import url, include
from django.contrib import admin
from django.views.static import serve
from django.conf import settings
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^api/', include('api.urls')), # 路由的分发
    url(r'^media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}),
]


# 子路由(app01)
from django.conf.urls import url
from . import views
urlpatterns = [

]

 多表设计

"""
Book表:name、price、img、authors、publish、is_delete、create_time

Pbulish表:name、address、is_delete、create_time

Author表:name、age、is_delete、create_time

AutherDetail表:mobile、author、is_delete、create_time


BaseModel基表
is_delete、create_tiime

上面四个表的创建继承基表。可以继承两个字段

"""

基表BaseModel:

  把表相同的字段单独创建出来形成基表,让其他表直接继承即可。

class BaseMode(models.Model):
    is_delete = models.BoolenanField(defalut=False)
    create_time = models.DateTimeField(auto_now_add=True)

    # 设置 abstract  =True 来声明基表,作为基表的Model不能在数据库中形成对应的表
    class Meta:
        abstract = True

源码分析得出的参数:

  设置 abstract  =True 来声明基表,作为基表的Model不能在数据库中形成对应的表

断关表多表关系

知识点(重点)

02-13 01:35