• django-model层


    纲领

    通过OEM技术,model层负责定义模型类,实际对应定义在数据库中的表,然后通过迁移数据库来进行持久化保存

    随后通过向admin层注册模型,来达到界面化DM的效果

    model层定义的类,一般用来被view层引用,来进行数据库的增删改查

    百度百科 - ORM

           https://baike.baidu.com/item/ORM/3583252?fr=aladdin

    修改数据库中的数据

    1.修改应用程序的models.py,对应定义数据库中的表

    在learning_log/learninglogs/models.py中新建一个class(Topic-主题模型类),保存

    from django.db import models
    
    # Create your models here.
    
    '''
    Django中模型类的属性types与外键等约束定义
       
     https://docs.djangoproject.com/en/2.0/ref/models/fields/#field-types
       https://docs.djangoproject.com/en/2.0/ref/models/fields/#module-django.db.models.fields.related
    Django model中的 class Meta 详解
       http://www.cnblogs.com/tongchengbin/p/7670927.html
    '''
    class Topic(models.Model):
           """用户学习的主题"""
           text = models.CharField(max_length=200)
           date_added = models.DateTimeField(auto_now_add=True)
    
           def __str__(self):
                  """返回模型的字符串表示,admin页面上的显示与django中的查找"""
                  return self.text
    
    class Entry(models.Model):
           """学到的有关某个主题的具体知识"""
           topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
           text = models.TextField()
           date_added = models.DateTimeField(auto_now_add=True)
    
           class Meta:
                  verbose_name_plural = 'entries'
    
           def __str__(self):
                  """返回模型的字符串表示,admin页面上的显示与django中的查找"""
                  return self.text[:50] + "..." if len(self.text)>=50 else self.text
    #learning_loglearning_logsmodels.py

    Django中模型类的属性types与外键等约束定义

           https://docs.djangoproject.com/en/2.0/ref/models/fields/#field-types

    Django model中的 class Meta 详解

           http://www.cnblogs.com/tongchengbin/p/7670927.html

           https://docs.djangoproject.com/en/2.0/ref/models/options/

    2.更新数据库迁移(修改)文件

    python manage.py makemigrations learning_logs

    3.迁移(修改)数据库

    python manage.py migrate

    4.注册模型

    from django.contrib import admin
    
    # Register your models here.
    from learning_logs.models import Topic
    
    admin.site.register(Topic)
    # learning_log/learninglogs/admin.py

    5.修改表中的数据

    界面化:django-admin层

    django-shelldjango-view层

    6.附

    CharField类型属性在界面化上的显示

     

    ForeignKeyField && TextField类型属性在界面化上的显示

     

  • 相关阅读:
    2017.3.10组合数学学习——多重集合的排列、组合,有限概率
    poj 3169 Layout
    poj 1201 Intervals
    poj 1716 Integer Intervals
    2017.3.9 组合数学学习——组合、多重集排列
    [HNOI 2013]切糕
    思维相似处总结(未完待续)
    bzoj 3673: 可持久化并查集 by zky
    SDOI2013 森林
    标题还没想好
  • 原文地址:https://www.cnblogs.com/yc913344706/p/9165337.html
Copyright © 2020-2023  润新知