潍坊达内的小编总结, 03,模型
在setting.py 中的database的字典中配置数据库。配置完成后 使用manage.py startapp来创建app在models中编写python代码描述实体映射。比如:
models.py
class Publisher(models.Model):
name = models.CharField(max_length = 30)
website = models.URLField()
def __unicode__(self):
return self.name
class Meta:
ordering = ['name']
models包含在django.db中,里面封装了模型类的通用接口。CharField()是创建varchar型数据,参数有max_length,blank,verbose_name等。分别表示最大长度、是否为空、显示名称。def__unicode__提供了装箱后的默认显示,如果没有设置此函数,默认显示object类型。class Meta规定了模型的默认排序字段。同时Django也提供了外键设置接口,此处以book为例
class Book(models.Model):
title = models.CharField(max_length = 100)
authors = models.ManyToManyField(Author) #多对多关系
publisher = models.ForeignKey(Publisher) #多对一关系
publication_date = models.DateField(blank = True, null = True)
创建完成后要在setting.py配置文件INSTALL_APPS中加入app包的路径。
Django支持codefirst 可以用manage.py syncdb来同步数据库,更新数据库时Django是先生成sql语句然后再执行,在执行前可以运行manage.py validate来检查模型,也可以运行manage.py sqlall books.可以直接声明模型对象来实现数据的插入save()保存 objects.filter()查找,可以对象调用delete()删除,同时也可以模型调用delete批量删除。同理update也是对象调用单个修改,模型调用批量修改。
04,集成的子框架
在django.contrib包中有多种附加功能包,目前只了解了admin和auth两种感觉功能很强大,美中不足的是admin的界面略丑。 admin是Django官方提供的后台管理平台。可以管理你所添加的app集成了包括增删改查在内的所有常用功能。调用代码也很简单,只需要在urls.py内激活admin的链接即可,配置文件在setting.py里,有需求的话可以自行改动。如果想把app的管理加入里面需要添加如下代码(以Book为例):
class BookAdmin(admin.ModelAdmin):
list_display = (‘title', 'publisher', 'publication_date’) #显示顺序
list_filter = (‘publication_date',) #过滤列表
ate_hierarchy = 'publication_date' #激活列表上方的日期查询
ordering = ('-publication_date',) #排序方式'-’代表倒序
filter_horizontal = (‘authors',) #添加时候的横向选择过滤(此处假设book和authors 是多对多关系)
raw_id_fields = ('publisher',) #添加时候的选择(此处假设publisher和book是一对多关系)
admin.site.register(Publisher)
admin.site.register(Author,AuthorAdmin)
admin.site.register(Book,BookAdmin)
05,缓存机制
个人认为缓存对一个访问量过多的网站时非常重要的,Django里面提供的缓存方式大致分为三种:全站缓存配置方式,针对视图缓存配置方式,针对数据缓存配置方式。只要修改相关配置文件即可。也可以装其他插件来协助缓存,例如memcached.
以上就是潍坊达内给大家做的内容详解,更多关于IT的学习,请继续关注潍坊达内