71.django 的 Model 中的 ForeignKey 字段中的 on_delete 參數有什么作用?
刪除關聯表中的數據時,當前表與其關聯的field的操作
django2.0之后,表與表之間關聯的時候,必須要寫on_delete參數,否則會報異常
72.基於django使用ajax發送post請求時,有哪種方法攜帶csrftoken?
- 1.后端將csrftoken傳到前端,發送post請求時攜帶這個值發送
data: {
csrfmiddlewaretoken: '{{ csrf_token }}'
},
- 2.獲取form中隱藏標簽的csrftoken值,加入到請求數據中傳給后端
data: {
csrfmiddlewaretoken:$('[name="csrfmiddlewaretoken"]').val()
},
- 3.cookie中存在csrftoken,將csrftoken值放到請求頭中
headers:{ "X-CSRFtoken":$.cookie("csrftoken")}
73.django 的緩存能使用 redis 嗎?如果可以的話,如何配置?
# 設置django緩存存放位置為redis數據庫,並設置一個默認(default)選項,在redis中(配置文件/etc/redis/redis.conf)開啟了RDB持久化儲存
# pip install django-redis, 然后在視圖中可以通過 from django_redis import get_redis_connection 這個方法和redis數據庫進行連接
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
# redis服務器的ip地址及端口號,及數據庫序號,redis一共有15個數據庫 0~15
"LOCATION": "redis://127.0.0.1:6379/6",
# "LOCATION": "redis://:passwordpassword@47.193.146.xxx:6379/0", # 如果redis設置密碼的話,需要以這種格式進行設置,host前面是密碼
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
74.django 路由系統中 name 的作用?
75.django 的模板中 filter、simpletag、inclusiontag 的區別?
filter的用法:
#先引入template
from django import template
#聲明register,名字只能是register
register = template.Library()
#帶名字的裝飾器,調用的時候用起的名字 如dsb
@register.filter(name='dsb')
def add_sb(value, arg):
return "{}_{}abc".format(value, arg)
@register.filter
def add_sb(value, arg):
return "{}_{}_abc".format(value, arg)
自定義simpletag和自定義inclusion_tag
1. 在app下創建一個名叫templatetags的python包
2. 在templatetags里建一個py文件
simpletag的用法:
和自定義filter類似,只不過接收更靈活的參數。