第04章节-Python3.5-创建一对多表结构

第04章节-Python3.5-创建一对多表结构

  • 首先创建Django工程:

1.file->New Project


image.png

2.创建static目录和templates目录


image.png

3.创建app01(python manage.py startapp app01)

Microsoft Windows [版本 10.0.16299.492]
(c) 2017 Microsoft Corporation。保留所有权利。
(c) 2017 Microsoft Corporation。保留所有权
利。

(python3) C:\Users\Administrator\PycharmProjects\s14day20>python manage.py startapp app01

(python3) C:\Users\Administrator\PycharmProjects\s14day20>

image.png

4.配置settings.py:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01',
]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
image.png
image.png
image.png
image.png

配置完成后想要写一个主机跟公司管理

  • 1.创建表:
    (python manage.py makemigrations)
    (python manage.py migrate)
image.png
  • model.py:
from django.db import models

# Create your models here.


# 公司
class Business(models.Model):
    # id
    caption = models.CharField(max_length=32)


# 主机
class Host(models.Model):
    nid = models.AutoField(primary_key=True)
    hostname = models.CharField(max_length=32,db_index=True)
    # GenericIPAddressField(Field)字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6
    ip = models.GenericIPAddressField(protocol="ipv4",db_index=True)
    port = models.IntegerField()
    b = models.ForeignKey(to="Business", to_field='id')


  • 按方向键(↓)就能添加且id能自增


    image.png
  • 当又想在数据库添加目录是出现这种情况时候(python manage.py makemigrations
    ):


    image.png
  • a.当选1时,然后提示要输入字符串(1选项是添加默认数据):


    image.png
  • 然后再执行(python manage.py migrate),打开Navicat查看效果:

image.png
  • 上述出现的问题另一种解决方法:

image.png
  • 就不会出现上面选择的问题
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。