session
为了对应HTTP的无状态性 session是服务器根据user的信息生成,并存储到数据库 用来保存用户的敏感信息 session是request的一个属性 常用操作:
request.session.get(key, defaultValue)
获取session中的一个key值,如果没指定的key就返回defaultValuerequest.session.clear()
清除全部session内的值request.session[key] = value
赋值操作request.session.flush()
删除当前会话服务器中的session和用户的cookiedel reques.session[key]
删除指定键值的session
print ( request. session)
print ( request. session. get( "key" , "None" ) )
request. session. clear( )
分页
django提供线程的分页器用来对结果进行分页 使用from django.core.paginator import Paginator
进行导入
from django. core. paginator import Paginator
def fenye ( request) :
s = libs. objects. all ( )
p = Paginator( s, 50 )
print ( p. count)
print ( p. num_pages)
print ( p. page_range)
p. page( 2 )
return p
基于类的视图
可以针对http协议不同的方法创建不同的函数 可以使用Mixin等oop技术 Mixin
把来自父类的行为或者属性组合在一起 可以解决多重继承的问题 ListView
from django. views. generic import ListView
def LibsListView ( ListView) :
queryset = libs. objects. all ( )
template_name = "libs_list.html"
from app import views as av
url( r'libs/' , av. LibsListView. as_view( ) ) ,
admin
django自带一套后台管理系统 首先要迁移数据库,才能拥有超级用户 建立超级用户 使用浏览器输入http://127.0.0.1:8000/admin
登录
python manage. py createsuperuser
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'UTC'
绑定管理模型
修改app下admin.py 在admin后台中就可以查到,新建的模型
from app. models import purchase, libs
admin. site. register( purchase)
admin. site. register( libs)
设置admin管理类
实现方法
实现内容
修改页面显示数量:list_per_page 操作选项在条目上方还是下方:actions_on_top/button 在中条目列表中添加列属性:list_display=[] 将模型的方法作为条目列表中的列显示
函数必须有返回值 设置short_descraption
作为显示内容 条目以什么规则排序admin_order_field
,主要针对新加函数 条目列显示关联
添加搜索框
使用search_fields = ["以什么规则搜索"]
屏蔽字段
每个条目中有些信息不希望被别人看到 fields = ["希望显示项", "希望显示项"]
给总条目的列进行分组
设置站的外观
admin.site.site_header = "站头"
admin.site.site_title = "站标题"
admin.site.index_title = "首页标语"
class purchaseAdmin ( admin. ModelAdmin) :
list_per_page = 1
actions_on_top = True
actions_on_bottom = False
list_display = [ "purchase_name" , "purchase_model" , "dq_time" , "getMyLibs" ]
search_fields = [ "purchase_name" ]
fieldsets = (
( "基本信息" , { "fields" : [ "purchase_name" , ] } ) ,
( "其他信息" , { "fields" : [ "pruchase_model" , "my_libs" ] } ) ,
)
class libsAdmin ( admin. ModelAdmin) :
pass
admin. site. register( purchase, purchaseAdmin)
admin. site. register( libs, libsAdmin)
@admin. register( purchase)
class purchaseAdmin ( admin. ModelAdmin) :
pass
@admin. register( libs)
class libsAdmin ( admin. ModelAdmin) :
pass
import time
def dq_time ( self) :
return time. time( )
dq_time. short_description = "当前时间"
dq_time. admin_order_field = "purchase_name"
def getMyLibs ( self) :
return self. my_libs. libs_name
getMyLibs. short_description = "仓库"