zoukankan      html  css  js  c++  java
  • django框架的models

    在django的框架设计中采用了mtv模型,即Model,template,viewer

    Model相对于传统的三层或者mvc框架来说就相当对数据处理层,它主要负责与数据的交互,在使用django框架设计应用系统时,需要注意的是django默认采用的是orm框架中的codefirst模型,也就是说开发人员只需要专注于代码的编写,而不需要过多的关注数据库层面的东西,把开发人员从数据库中解放出来

    django会根据Model类生成一个数据库镜像文件,然后再使用该镜像文件生成数据库,同时该文件将记录与数据库同步版本的变化,所以在使用django进行开发时不要手工去修改数据库,这样会造成django框架的版本记录不正确,从而无法正确的同步数据模型与数据库的内容

    django生成的镜像文件内容如下:

    from __future__ import unicode_literals

    from django.db import migrations, models


    class Migration(migrations.Migration):

    dependencies = [
    ('web', '0001_initial'),
    ]

    operations = [
    migrations.AddField(
    model_name='userinfo',
    name='sex',
    field=models.BooleanField(default=True),
    preserve_default=False,
    ),
    ]
    以上内容为生的一一个版本的镜像,内容记录了对model所在的app的记录,以及执行的动作,如上面的镜像文件记录为对web的app中的model增加了一个名称为sex的字段,字段类型为Boolean,默认为True

    自动将app中的Model进行同步需要setting.py中设置INSTALLED_APPS,将需要同步的app注册到系统中,系统在运行同步命令的时候将会把所有注册到系统中的app中的Model数据与数据库进行同步处理
    同时需要注意一个问题,即app一定要位于工程目录之下,否则同步的时候将会提示没有这个app之类信息
    在进行同步之前要做几样检查工作:
    一:数据库连接配置:setting.py
    
    
    DATABASES = {
    'default': {

    'ENGINE': 'django.db.backends.mysql',

    'NAME': 'test',

    'USER': 'root',

    'PASSWORD': '434944800',

    'HOST': 'localhost',

    'PORT': '3306',

    }
    }
    
    
    二:将app注册到工程项目中
    
    
    INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'web',
    ]
    inseert 字段主要是为了将APP里面的model在数据中建立。
    三:编写Model
    from __future__ import unicode_literals
    from django.db import models

    # Create your models here.

    class userInfo(models.Model):
    username=models.CharField(max_length=100)
    passwd=models.CharField(max_length=20)
    sex=models.BooleanField()

    类userinfo即相当于数据表名,django实际生成的表名为web_userinfo,由于对数据库的操作需要借助于django,所以model类需要继承自models.Model

    在建立表的时候默认是加上了项目名一个前缀,比如你写的是user表,实际在在数据库中建立的是WEB_USER表,

    准备工作完成后在终端进行工程所在目录中
    输入命令:python manage.py  makemigrations
    生成镜像文件
            python manage.py  migrate
            同步到数据库
    执行以上两条命令将对Model和数据库进行同步

    总结:
    一:配置数据库
    二:app注册到工程
    三:编写model
    四:执行命令同步

    对model做调整后只需要重复执行第四步即可同步数据库




















  • 相关阅读:
    Python Generators vs Iterators
    python staticmethod classmethod
    静态类型、动态类型、强类型以及弱类型语言
    Python串行运算、并行运算、多线程、多进程对比实验
    python字典根据value排序
    解读Python内存管理机制
    两个list 求交集效率对比
    Python error: Unable to find vcvarsall.bat
    max-length兼容ie
    return false 与return true 困惑
  • 原文地址:https://www.cnblogs.com/ncut/p/6243228.html
Copyright © 2011-2022 走看看