1:用过django就知道django的model有多方便:
首先介绍下django的模型有哪些属性:先看例子:
Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性。以下对此作一总结:
这个属性是定义当前的模型类是不是一个抽象类。所谓抽象类是不会对应数据库表的。一般我们用它来归纳一些公共属性字段,然后继承它的子类可以继承这些字段。比如下面的代码中Human是一个抽象类,Employee是一个继承了Human的子类,那么在运行syncdb命令时,不会生成Human表,但是会生成一个Employee表,它包含了Human中继承来的字段,以后如果再添加一个Customer模型类,它可以同样继承Human的公共属性:
class Human(models.Model):
name=models.CharField(max_length=100)
GENDER_CHOICE=((u'M',u'Male'),(u'F',u'Female'),)
gender=models.CharField(max_length=2,choices=GENDER_CHOICE,null=True)
class Meta:
abstract=True
class Employee(Human):
joint_date=models.DateField()
class Customer(Human):
first_name=models.CharField(max_length=100)
birth_day=models.DateField()
上面的代码,执行python manage.py syncdb 后的输出结果入下,可以看出Human表并没有被创建:
$ python manage.py syncdb
Creating tables ...
Creating table myapp_employee
Creating table myapp_customer
Installing custom SQL ...
Installing indexes ...
No fixtures found.
app_label这个选项只在一种情况下使用,就是你的模型类不在默认的应用程序包下的models.py文件中,这时候你需要指定你这个模型类是那个应用程序的。比如你在其他地方写了一个模型类,而这个模型类是属于myapp的,那么你这是需要指定为:
db_table是用于指定自定义数据库表名的。Django有一套默认的按照一定规则生成数据模型对应的数据库表名,如果你想使用自定义的表名,就通过这个属性指定,比如:
table_name='my_owner_table'
有些数据库有数据库表空间,比如Oracle。你可以通过db_tablespace来指定这个模型对应的数据库表放在哪个数据库表空间。
由于Django的管理方法中有个lastest()方法,就是得到最近一行记录。如果你的数据模型中有 DateField 或 DateTimeField 类型的字段,你可以通过这个选项来指定lastest()是按照哪个字段进行选取的。
由于Django会自动根据模型类生成映射的数据库表,如果你不希望Django这么做,可以把managed的值设置为False。
这个选项一般用于多对多的关系中,它指向一个关联对象。就是说关联对象找到这个对象后它是经过排序的。指定这个属性后你会得到一个get_XXX_order()和set_XXX_order()的方法,通过它们你可以设置或者回去排序的对象。
这个字段是告诉Django模型对象返回的记录结果集是按照哪个字段排序的。比如下面的代码:
ordering=['order_date'] # 按订单升序排列
ordering=['-order_date'] # 按订单降序排列,-表示降序
ordering=['?order_date'] # 随机排序,?表示随机
permissions主要是为了在Django Admin管理模块下使用的,如果你设置了这个属性可以让指定的方法权限描述更清晰可读。
这是为了实现代理模型使用的,这里先不讲随后的文章介绍。
unique_together这个选项用于:当你需要通过两个字段保持唯一性时使用。比如假设你希望,一个Person的FirstName和LastName两者的组合必须是唯一的,那么需要这样设置:
unique_together = (("first_name", "last_name"),)
verbose_name的意思很简单,就是给你的模型类起一个更可读的名字:
这个选项是指定,模型的复数形式是什么,比如:
verbose_name_plural = "stories"
如果不指定Django会自动在模型名称后加一个’s’
class Register(models.Model):
id = models.IntegerField(primary_key = True, db_column="ID")
mid = models.IntegerField(db_column = "MID")
name = models.CharField(max_length = 10 , db_column = "NAME")
nickName = models.CharField(max_length = 100 ,db_column = "NICK_NAME")
slo = models.CharField(max_length = 50, db_column = "SLOGAN")
status = models.SmallIntegerField(db_column = "STATUS")
cnt = models.IntegerField(db_column = "CNT")
createdDate = models.DateTimeField(db_column = "CREATED_DATE")
class Meta:
db_table = "A111208FACTIONVOTETOP10_REGISTER"
managed = False
分享到:
相关推荐
python 零基础学习篇
第1章 DjangoPython实战 1.1 Python技术就是Django技术 1.2 入门:Python交互解释器 1.3 Python基础 1.4 Python标准类型 1.5 流程控制 1.6 异常处理 1.7 文件 1.8 函数 1.9 面向对象编程 1.10 正则表达式 ...
基于Django的图书管理系统 0 1 需求说明 1 2 设计架构 1 3 数据模型 1 3.1 用户模型 1 3.2 书籍模型 1 3.3 图片模型 2 4 关键代码说明 3 4.1 路由部分 3 4.2 重设密码部分 3 4.3 添加书籍部分 4 4.4 书籍列表部分 6 ...
Model(模型) Template(模板) View(视图) Django项目框架搭建 创建项目骨架 django-admin startproject my_project1 启动服务 python manage.py runserver 默认端口:8000 配置文件settings.py ...
目录章节01:django是如何做到自动重启的章节02:django运行服务器章节03:django wsgi章节04:django asgi章节05:django请求来了章节06:django应用及模型加载章节07:django命令解析章节08:django设置懒加载章节...
本篇详细总结软件开发所遵循的MVC (Model-View-Controller, 模型-视图-控制器) 设计模式以及Django的MVT设计模式(Model-View-Template)如何遵循这种设计理念。Django Model(模型), URL(链接), View(视图) 和Template...
最近在学习django,学到第五章模型时,需要连接数据库,然后,在这里分享一下方法。 起初是不知道怎样配置mysql数据库,但是还好,django的官网上面有相关的配置方法,下面就直接给分享一下。 这是settings文件...
方法1: 在Django模型中定义upload_to选项。 Django模型中的ImageField和FileField的upload_to选项是必填项,其存储路径是相对于MEIDA_ROOT而来的。 我们来看一个简单案例(如下所示)。如果你的MEDIA_ROOT是/media/...
Python项目之django水果销售系统(源码 + 说明文档) 2开发技术介绍 6 2.1B/S架构 6 2.2 Python简介 6 2.3 Django框架 6 2.4MySQL 介绍 7 2.5MySQL环境配置 7 3系统分析 8 3.1可行性分析 8 3.1.1技术可行性 8 ...
Django框架分模块进行笔迹总结。包括环境搭建、会话、模型基础、token、cookies、上下文处理、
4.2.1 E-R关系模型设计 7 4.2.2 数据库表内容设计 7 5 系统的实现 9 5.1教学网首页界面 9 5.2江河湖泊信息界面 9 5.3河流信息管理界面 10 5.4河流检索查询页面 10 5.5河流检索信息反馈界面 11 5.6用户个人信息界面 ...
文章目录前言 ´・ᴗ・`创建ROOT账户admin注册ORM模型打开服务器运行吧修改一下语言进一步修改…对更新数据的页面 我们可以这么魔改inline 内联式的录入数据`__str__`总结 ´◡` 前言 ´・ᴗ・` 本节主要讲了 如何...
只要告诉modelform哪一个模型表,它会自动帮我们比对models模型表字段,并衍生成form组件.它不光给我们提供form组件,还有组件没有的功能. 所有字段都生成form组件. fields=”__all__” username和password字段...
目 录 摘 要 1 A B S T R A C T 2 第1章 绪论 4 1.1 研究背景与意义 4 1.2 国内外研究现状和发展趋势 5 1.3 本论文主要工作及组织结构 5 1.3.1 论文主要研究工作 5 ...第4章 总结与展望 16 致谢 17 参考文献 18
将实际问题转换成ER图,并将ER模型转化成数据模型。由此给出了数据字典和数据库的整体逻辑设计。 接着分析了web开发使用的后台框架django。举了域名解析和视图返回的例子。以及分析了djngo ORM的特点,说明了利用...
学生管理系统的开发,项目包含了如下几个内容:项目的总体介绍、项目的数据库、ORM模型访问数据的实现过程、ORM实现数据库访问的优势、完成ORM连接数据库的类、实现学生信息的增删改查、项目总结及优化方案。...
DjangoX(强大灵活后台系统)简介DjangoX 是一个强大灵活的 Django 数据管理和配置后台系统,依托于实际项目和生产环境互联网产品的总结积累,继承和扩展 Xadmin,DjangoX 努力做 Django 框架的优秀实践项目。...
文章2、DRF实战总结:基于函数的视图API以及自定义序列化器 ...Django视图集viewset代码最少,但这是以牺牲了代码的可读性为代价的,因为它对代码进行了高度地抽象化。另外urls由router生成,不如自己手动配置的清楚。