07-15 django 71-75

______egon新书python全套来袭请看:https://egonlin.com/book.html

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 的作用?

  • name:对URL路由关系进行命名

75.django 的模板中 filter、simpletaginclusiontag 的区别?

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类似,只不过接收更灵活的参数。
posted @ 2019-10-23 21:33  小猿取经-林海峰老师  阅读(644)  评论(0编辑  收藏  举报