zoukankan      html  css  js  c++  java
  • django中的Model模型一:

    在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',
    ]


    三:编写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

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

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

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





  • 相关阅读:
    android.database.sqlite.SQLiteException: no such column: aaa (code 1): , while compiling: DELETE FROM users WHERE user_name=aaa解决办法
    安卓开发经常闪退的原因及解决方法
    pycharm破解
    解决命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)
    Request.Params
    MVC查找排序分页学习
    js jq输入框中按回车触发提交事件,用户在页面输入后按回车(Enter键)进行
    前端入门1-基础概念
    系统应用集成过程中的一些坑
    继续封装个 Volley 组件
  • 原文地址:https://www.cnblogs.com/lijintian/p/5840788.html
Copyright © 2011-2022 走看看