附录5.习题2

Django中查询queryset时什么情况下用Q方法

F:对数据本身的不同字段进行操作 如:比较和更新,对数据进行加减操作
Q:用于构造复杂的查询条件 如:& |操作

Django中验证表单提交格式是否正确需哪个函数

form.is_valid() :返回布尔值

orm如何取消级联

user = models.ForeignKey(User, blank=True, null=True, on_delete+models.SET_NULL)

并且SET_NULL只有在null为True的时候,才可以使用。

Django中如何保存和更新session

  • 保存session
    1 生成随机字符串 ltv8zy1kh5lxj1if1fcs2pqwodumr45t
    2 response.set_cookie("sessionid",ltv8zy1kh5lxj1if1fcs2pqwodumr45t)
    3 在django—session表中创建一条记录:
    session-key:ltv8zy1kh5lxj1if1fcs2pqwodumr45t
    session-data:{"is_login":True,"username":"yuan"}

  • 更新session
    在django—session表中创建一条记录:
    session-key: ltv8zy1kh5lxj1if1fcs2pqwodumr45t
    session-data:被更新的数据

简述Django对http请求的执行流程

  1. 在接受一个Http请求之前的准备,启动一个支持WSGI网关协议的服务器监听端口等待外界的Http请求,比如Django自带的开发者服务器或者uWSGI服务器。
  2. 服务器根据WSGI协议指定相应的Handler来处理Http请求,并且初始化该Handler,在Django框架中由框架自身负责实现这一个Handler。 此时服务器已处于监听状态,可以接受外界的Http请求 当一个http请求到达服务器的时候
  3. 服务器根据WSGI协议从Http请求中提取出必要的参数组成一个字典(environ)并传入Handler中进行处理。
  4. 在Handler中对已经符合WSGI协议标准规定的http请求进行分析,比如加载Django提供的中间件,路由分配,调用路由匹配的视图等。 返回一个可以被浏览器解析的符合Http协议的HttpResponse。

Django中当用户登录到A服务器进入登陆状态,下次被nginx代理到B服务器会出现什么影响

之前的登录状态会丢失

Django是如何处理跨域请求的

  • 启用中间件
  • post请求
  • 验证码
  • 表单中添加{%csrf_token%}标签

查询集的两大特性?什么是惰性执行

  • 惰性执行、缓存 。
  • 创建查询集不会访问数据库,直到调用数据时,才会访问数据库,调用数据的情况包括迭代、序列化、与if合用

查询集返回的列表过滤器有哪些

  • all():返回所有数据
  • filter():返回满足条件的数据
  • exclude():返回满足条件之外的数据,相当于sql语句中where部分的not关键字
  • order_by():排序

如何获取django urlpatterns里面注册的所有url

from django.conf.urls import url,include
from arya.service.sites import site
from django.urls.resolvers import RegexURLPattern
from django.urls.resolvers import RegexURLResolver
from django.shortcuts import HttpResponse

def index(request):
  print(get_all_url(urlpatterns,prev='/'))
  return HttpResponse('...')

def get_all_url(urlparrentens,prev,is_first=False,result=[]):
  if is_first:
​    result.clear()
  for item in urlparrentens:
​    v = item._regex.strip('^')    #去掉url中的^和')    #去掉url中的^和
​    if isinstance(item,RegexURLPattern):
​      result.append(prev + v)
​    else:
​      get_all_url(item.urlconf_name,prev + v)
  return result

urlpatterns = [
  url(r'^arya/', site.urls),
  url(r'^index/', index),
]

urls.py中include的作用

进行路由转发,通常我们会在每个app里,各自创建一个urls.py路由模块,然后从根路由出发,将app所属的url请求,全部转发到相应的urls.py模块中。

urlpatterns中的name与namespace有什么作用?

  • name,给路由起一个别名
  • namespace,名字空间,防止多个应用之间的路由重复

如何给一个字段设置一个主键?

primary_key

如何设置一个带有枚举值的字典?

DateTimeField类型中的auto_now与auto_now_add有什么区别

  • DateTimeField.auto_now
    这个参数的默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。因此这个参数在需要存储“最后修改时间”的场景下,十分方便。需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django再带的admin管理器,那么该字段在admin中是只读的。
  • DateTimeField.auto_now_add
    这个参数的默认值也为False,设置为True时,会在model对象第一次被创建时,将字段的值设置为创建时的时间,以后修改对象时,字段的值不会再更新。该属性通常被用在存储“创建时间”的场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。

values()与values_list()有什么区别?

  • values : 取字典的queryset
  • values_list : 取元组的queryset

selected_related与prefetch_related有什么区别?

  • select_related适用于外键和多对一的关系查询;
  • prefetch_related适用于一对多或者多对多的查询。

当删除一个外键的时候,如何把与其关联的对应关系删除

使用on_delete参数

class Meta中常用的元信息字段有哪些

app_label
指定模型类是那个应用程序的
db_table
指定自定义数据库表名
若不提供该参数, Django 会使用 app_label + '_' + module_name 作为表名
ordering
告诉Django模型对象返回的记录结果集是按照哪个字段排序




- end -

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容