@

1.说明

models是django的很重要的部分,所以深入研究。

本文章的所研究项目为黑马教育python课程中的项目实战-天天生鲜项目

这里就简单的描述下,会把研究的代码放在github,多研究几个来形成自己的知识体系

2.模型类的设计

3.代码的具体实现



文件夹中只有代码的models部分

该项目中一共有4个大类:cart(购物车),goods(商品),order(订单),user(用户)

然后里面有一个db文件夹,里面放的是base_model,所有的model的通用父类

from django.db import models

class BaseModel(models.Model):
'''模型抽象基类'''
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
is_delete = models.BooleanField(default=False, verbose_name='删除标记') class Meta:
# 说明是一个抽象模型类
abstract = True

作用:定义了三个字段,创建时间,更新时间,是否删除字段

然后通过元类的属性来说明,这一个类是一个抽象类


from django.db import models
from django.contrib.auth.models import AbstractUser
from db.base_model import BaseModel
# Create your models here. class User(AbstractUser, BaseModel):
'''用户模型类''' class Meta:
db_table = 'df_user'
verbose_name = '用户'
verbose_name_plural = verbose_name
........

django中db很重要所以,db的包就在django下面,然后如果要创建一个模型,都要继承db.models下的model

第二个import是导入django.contrib.auth.models(django发行版本.认证.模型)

下的abstractuser(抽象用户),为什么要导入这个呢,因为django做得太好了,把那种通用的表都抽象整合在一起了,要的时候直接用就完事

可以看到我们定义的user表,继承了额abstractuser和basemodel(一个django自带的,一个自己定义的)

然后在user的内部类中定义db_table 也就是在数据库中建表的名称,至于verbose_name 好像就对admin后头中的显示有帮助,应该没有其他作用毕竟可以为中文,plural是复数的意思。

关于其他的都放在github上,每句都会有注释

4.详情地址

gitee:https://gitee.com/bothsavage/DjangoModleStudy.git

github:https://github.com/BOTHSAVAGE/DjangoModleStudy.git

关于作者

个人博客网站

个人GitHub地址

个人公众号:

网站开发学习Python实现-Django的models学习-生鲜项目(6.3.2)的更多相关文章

  1. 在学习python的Django\Flask\Tornado前你需要知道的,what is web?

    我们都在讲web开发web开发,那到底什么是web呢? 如果你正在学习python三大主流web框架,那这些你必须要知道了 软件开发架构: C/S架构:Client/Server    客户端与服务端 ...

  2. Django框架学习——python模拟Django框架(转载)

    原贴来源 http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/AbtWebModules python实现web服务器 web开发首先要有web服务器 ...

  3. 【Python】django模型models的外键关联使用

    Python 2.7.10,django 1.8.6 外键关联:http://www.bubuko.com/infodetail-618303.html 字段属性:http://www.cnblogs ...

  4. python关于Django搭建简单博客项目(详解一)

    上一篇我们说了如何搭建简易博客网站,下面我们来进行详细解答.本文没有特定顺序,请结合上一篇和源代码参照学习. 相关源代码和解析请参看:https://github.com/Cheng0829/mysi ...

  5. Window环境下Python和Django的安装,以及项目的创建

    1.首先我们要下载python和Django,他们的下载地址如下 python地址:https://www.python.org/ Django地址:  https://www.djangoproje ...

  6. 网站开发学习Python实现-Django学习-总结(6.1.2)

    @ 目录 1.MVT 2.模型 3.视图 4.模板 5.常用的命令 6.pycharm创建django工程 关于作者 1.MVT 项目结构如下,其中项目同名文件夹为配置文件 每一个项目有多个应用(未考 ...

  7. 网站开发学习Python实现-Django项目部署-介绍(6.2.1)

    @ 目录 1.第一步:找源码 2.第二步:在windows中更改代码 2.第三步:同步到linux中 3.第三步:部署 4.第四步:运行 关于作者 1.第一步:找源码 从github上找一个djang ...

  8. 网站开发学习Python实现-Django学习-自学注意(6.1.3)

    @ 目录 1.配置文件相关 2.应用创建相关 3.项目相关 4.模板相关 5.其他 关于作者 1.配置文件相关 1.可以更改时间,地区相关(国际化) 2.BASE_DIR很重要,一个工程要有很好的移植 ...

  9. 网站开发学习Python实现-Django学习-介绍(6.1.1)

    @ 目录 1.MVT 2.ORM 关于作者 1.MVT 主要的目的是为了快速,简便的开发数据库驱动的网站,强调代码的复用,多个组件可以很方便以插件的方式服务于整个框架,采用的是MVT设计模式(差不多的 ...

随机推荐

  1. 怎么绘制C语言选择和循环语句的思维导图

    C语言是一门非常基础的计算机语言,是大部分本科学生的公共专业,在C语言的学习中,选择和循环语句是至关重要的部分,利用思维导图可以有效节约时间并加深知识点记忆. 接下来就为大家介绍一下我用iMindMa ...

  2. Mac虚拟环境安装django

    安装:pip3 install virtualenv 创建:Virtualenv env01 激活:Source env01/bin/activate django安装:pip3 install dj ...

  3. Postman实用小技巧

    Postman使用小技巧 软件测试工程师 张江涛 废话就不多说了,直奔主题,这里的技巧就以对话方式来阐述吧. 问:公司的环境也太多了吧,本地.开发.测试以及生产环境,这么多环境,每次使用的时候都要来回 ...

  4. leetcode116. 填充每个节点的下一个右侧指针

    给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下:struct Node {  int val;  Node *left;  Node *right;  Node ...

  5. 03生成微博授权URL接口

    1.创建apps/oauth模块进行oauth认证 '''2.1 在apps文件夹下新建应用: oauth''' cd syl/apps python ../manage.py startapp oa ...

  6. Linun中配置redis密码

    这里以linux服务器为例,为redis配置密码. 1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,) (1)首先进入redis,如果没有 ...

  7. T147403 「TOC Round 4」吃,都可以吃

    若不考虑 \(m\) 的限制,打表可以发现: 当 \(p=2^n\left(n>1\right)\) 时,最大的 \(f_i\) 是 \(5\),有十个 \(i\) 的 \(f_i\) 是 \( ...

  8. Codeforces Round #631 (Div. 1) B. Dreamoon Likes Sequences 题解(思维+求贡献)

    题目链接 题目大意 让你构造一个严格单调上升的数组a满足\(1<=a_1<a_2<....a_n<=d\) 而且要使得这个数组的异或前缀和也满足严格单调上升,求有多少个满足条件 ...

  9. Java数据结构(十)—— 树

    树 树的概念和常用术语 常用术语 节点 根节点 父节点 子节点 叶子节点:没有子节点的节点 节点的权:节点的值 路径:节点A到节点B的路径 层 子树 树的高度:最大层数 森林:多颗子树构成森林 二叉树 ...

  10. Java集合【4】-- iterable和Iterator的异同分析详解

    目录 一.iterator介绍 二.iterable接口 三.为什么有Iterator还需要Iterable 一.iterator介绍 iterator接口,也是集合大家庭中的一员.和其他的Map和C ...