欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django模型数据类型和模版标签详解

程序员文章站 2022-03-24 23:20:28
...

一:Django模型数据类型

Django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表

以下是我在模型中写的数据:

class Cart(models.Model):
    sort = models.CharField(max_length=20, null=False)
    name = models.CharField(max_length=20, null=False)
    price = models.FloatField(max_length=20)
    unit = models.CharField(max_length=20)
    count = models.IntegerField(null=False)
    money = models.FloatField(default=0, null=False)
    tot_money = models.FloatField(default=0, null=False)
    def __str__(self):
        return self.name
  def publish(self):
        self.save()

 这里用到许多数据类型,以下为常见类型总结:

models.CharField  字符串字段(必须参数 max_length)
models.BooleanField  布尔类型,不能为空,Blank=True
models.DateField  日期类型date,对于参数:auto_now = True每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变
models.DateTimeField  日期类型 datetime同DateField的参数
models.Decimal  十进制小数类型decimal,必须指定整数位max_digits和小数位decimal_places
models.EmailField  字符串类型(正则表达式邮箱),对字符串进行正则表达式
models.FloatField  浮点类型
models.IntegerField  整形
models.BigIntegerField  长整形
models.TextField  字符串=longtext
models.TimeField  时间 HH:MM[:ss[.uuuuuu]]
models.URLField  字符串,地址正则表达式
models.BinaryField  二进制
models.ImageField   图片
models.FilePathField 文件

 

括号里需要参数,所以以下是对参数的一些总结:

null=True (数据库中字段是否可以为空)
blank=True   (django的 Admin 中添加数据时是否可允许空值)
primary_key = False(主键,对AutoField设置主键后,就会代替原来的自增id列)
auto_now 和 auto_now_add(auto_now   自动创建--无论添加或修改,都是当前操作的时间;auto_now_add  自动创建--永远是创建时的时间)
max_length (最大长度)
default  (默认值)
verbose_name  (Admin中字段的显示名称)
name|db_column  (数据库中的字段名称)
unique=True  (不允许重复)
db_index = True  (数据库索引)
editable=True  (在Admin里是否可编辑)
error_messages=None  (错误提示)
auto_created=False  (自动创建)
help_text  (在Admin中提示帮助信息)
upload-to   (上传到哪个位置,更多与image,filepath配合使用)

 

二:标签详解(1)标签的形式:{% tag %}

(2)标签的作用:

①在输出时创建一些文本
②通过执行循环和一些逻辑来实现控制流
③装载一些外部信息进入模板

(3)一些常用的内建标签:

①block 定义一个块,该块能够被继承他的子孙模板重写

{% block %}
//(定义块内容)
{% endblock %}

②comment 模板系统会忽略该标签内部的所有内容

{% comment %}
   //(内容)
{% endcomment %}

 ③cycle  在循环时轮流使用给定的字符串列表中的值

<tr class="{% cycle list%}">
   ...
</tr>

 ④for  循环list中的每个值,进行相应的输出

{% for variable in list/dict %}
   //(使用variable)
{% endfor%}

 ⑤if  variable中可以使用and,or,not,但不允许and和or一起使用

{% if variable %}
  //(内容1)
     {% elif %}
  //(内容2)
{% endif %}

 ⑥ifequal  判断两个变量是否相等

{% ifequal variable1 variable2 %}
     ...
{% endifequal %}

 

相关标签: django