摘要:
官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类 阅读全文
摘要:
因为HTTP协议是无状态的,每发送完请求后都会断开链接,所以有时为了保存 状态用到cookie和session cookie 是保存在浏览器上的,session是保存在后台的 cookie相当于一个口令,从服务端发给客户端的一系列字符串,每次发送请求都带着这个口令 session就是一个大字典,用户 阅读全文
摘要:
F查询:代表2个字段之间的比较 from django.db.models import F models.Book.objects.filter(price__gt=F('keep_price')) 也可以在F()后面进行运算,不过只能对数字 models.Book.objects.filter( 阅读全文
摘要:
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'logger 阅读全文
摘要:
set() 更新model对象的关联对象 book_obj=models.Book.objects.first() book_obj.authors.set([2,3]) 把book_obj这个对象重新设置关联对象为作者id为2,3的对象 remove() 从关联对象中移除被执行的对象 book_o 阅读全文
摘要:
db_index=True 如果设置该字段就可以设置索引 auto_now_add 代表设置创建时候的时间 auto_now 每次更新数据记录时会更新该字段 to_field 设置要关联表的字段,一般是ID related_time 反向操作时,使用的字段名,用于代替原反向查询时的表名_set 但如 阅读全文
摘要:
必知必会13条 all():查询所有结果 filter(**kwargs) 过滤,取到符合条件的对象,比get方法好,找不到会返回空 get(**kwargs) 取到符合条件对象,对象有且只有一个,找不到会报错 exclude(**kwargs)包含了与所给筛选条件不匹配的对象 values(*fi 阅读全文
摘要:
models.DO_NOTHING删除关联数据,引发错误IntegrityError models.PROTECT删除关联数据,引发错误ProtectedError models.SET_NULL删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_DEFAU 阅读全文
摘要:
AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 primary_key=True 注:当model中如果没有自增列,则自动会创建一个列名为id的列 from dj 阅读全文
摘要:
2.0版本写法from django.urls import path urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), 阅读全文