一.Django 模型对象的建立;
例:1.
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
class:表明建立对象。
Post是对象名。
models.Model:表明是Django模型。
models.CharField - 这是你如何用为数有限的字符来定义一个文本。
models.TextField - 这是没有长度限制的长文本。这听起来用在博客文章的内容上挺适合的
models.DateTimeField - 这是日期和时间。
models.ForeignKey - 这是指向另一个模型的连接。
def
表明这是一个函数。
2.对象建立好后,让Django知道模型的变更
python manage.py makemigrations blog
3.迁移数据库。
python manage.py migrate blog
二。模板语言
1.变量
{{ variable }}
变量包括字母数字及下划线,不能使用空格和标点符号。
2.过滤器, 改变变量的显示。
{{ name|lower }}
过滤器参数;
{{ item.content |truncatewords:30 }} <!-- 只显示 content 变量的前30个词 -->
default
{{ value|default:"nothing" }} <!--如果一个变量是false或者为空,使用给定的默认值。否则,使用变量的值-->
length
{{ value|length }}返回值的长度。它对字符串和列表都起作用
add给变量加值。
{{ value|add:"2" }} <!--如果 value 为 4,则会输出 6.-->
capfirst将首字母大写。
{{ value|capfirst }} <!--如果value是test过滤后转为Test-->
dictsort根据指定的key值对列表字典排序,并返回
{{ value|dictsort:"name" }}
random随机返回一个值
{{ value|random }}<!--若value=[1,8,6,9,6],随机返回一个数可能为6.-->
slice切片
{{ value|slice:":2" }}<!---->如果value是 ['a', 'b', 'c'], 输出结果为 ['a', 'b']
truncatewords字符串截断
{{ some_list|slice:":2" }}<!--如果value是 "Joel is g",输出"Joel is ...".value-->