请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Django开发常用方法及面试题

[复制链接]
查看: 39|回复: 0

1万

主题

2万

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
47993
发表于 2019-12-3 06:48 | 显示全部楼层 |阅读模式
目录
            
    1. 对Django的熟悉?
  1. #1.Django是走大而全的偏向,它最着名的是其全自动化的治理布景:只必要操纵起ORM,做简单的工具界说,它就能自动天生数据库结构、以及全功用的治理布景。#2.Django内置的ORM跟框架内的其他模块耦合水平高。#利用步伐必须操纵Django内置的ORM,否则就不能享遭到框架内供给的各种基于其ORM的便当;#理论上可以切换掉其ORM模块,但这就相当于要把装修终了的屋子撤除重新装修,倒不如一路头就去毛胚房做全新的装修。#3.Django的卖点是超高的斥地服从,其性能扩大有限;采纳Django的项目,在流量到达必定例模后,都必要对其举行重构,才华满足性能的要求。#4.Django适用的是中小型的网站,大如果作为大型网站快速实现产物雏形的工具。#5.Django模板的筹划哲学是完全的将代码、款式分手; Django从底子上根绝在模板及第行编码、处置惩罚数据的大要。
复制代码
2. Django 、Flask、Tornado的对照
  1. #1.Django走的是大而全的偏向,斥地服从高。它的MTV框架,自带的ORM,admin布景治理,自带的sqlite数据库和斥地测试用的办事器#给斥地者进步了超高的斥地服从#2.Flask是轻量级的框架,自在,灵活,可扩大性很强,焦点基于Werkzeug WSGI工具和jinja2模板引擎#3.Tornado走的是少而精的偏向,性能精巧。它最着名的是异步非阻塞的筹划方式#Tornado的两大焦点模块:#    1.iostraem:对非阻塞式的socket举行简单的封装#    2.ioloop:对I/O多路复用的封装,它实现了一个单例
复制代码
3. 什么是wsgi,uwsgi,uWSGI?
  1. #WSGI:#    web办事器网关接口,是一套协议。用于吸收用户请求并将请求举行初度封装,然后将请求交给web框架#    实现wsgi协议的模块:#        1.wsgiref,本质上就是编写一个socket办事端,用于吸收用户请求(django)#        2.werkzeug,本质上就是编写一个socket办事端,用于吸收用户请求(flask)#uwsgi:#    与WSGI一样是一种通讯协议,它是uWSGI办事器的独占协议,用于界说传输信息的典范#uWSGI:#    是一个web办事器,实现了WSGI协议,uWSGI协议,http协议,
复制代码
4. django请求的生命周期?
  1. #1.wsgi,请求封装后交给web框架 (Flask、Django)     #2.中心件,对请求举行校验或在请求工具中增加其他关连数据,例如:csrf、request.session     - #3.路由婚配 按照欣赏器发送的不同url去婚配差此外视图函数    #4.视图函数,在视图函数及第行营业逻辑的处置惩罚,大要触及到:orm、templates => 衬着     - #5.中心件,对响应的数据举行处置惩罚。 #6.wsgi,将响应的内容发送给欣赏器。
复制代码
5. 简述什么是FBV和CBV?
  1. #FBV和CBV本质是一样的#基于函数的视图叫做FBV,基于类的视图叫做CBV#在python中操纵CBV的优点:#1.进步了代码的复用性,可以操纵面向工具的技术,比如Mixin(多继续)#2.可以用差此外函数针对差此外HTTP方式处置惩罚,而不是经过很多if判定,进步代码可读性
复制代码
6. 怎样给CBV的步伐增加装潢器?
  1. #引入method_decorator模块#1.间接在类上加装潢器#@method_decorator(test,name='dispatch')#class Loginview(View):#    pass#2.间接在处置惩罚的函数前加装潢器#@method_decorator(test)#    def post(self,request,*args,**kwargs):pass
复制代码
7. 简述MVC和MTV
  1. #MVC软件系统分为三个底子部分:模子(Model)、视图(View)和控制器(Controller)#Model:负责营业工具与数据库的映照(ORM)#View:负责与用户的交互#Control:担任用户的输入挪用模子和视图完成用户的请求#Django框架的MTV筹划形式鉴戒了MVC框架的脑筋,三部分为:Model、Template和View#Model(模子):负责营业工具与数据库的工具(ORM)#Template(模版):负责怎样把页面展现给用户#View(视图):负责营业逻辑,并在适当的时候挪用Model和Template#此外,Django还有一个urls分发器,#它将一个个URL的页面请求分发给差此外view处置惩罚,view再挪用响应的Model和Template
复制代码
8. django路由系统中name的感化?
  1. #用于反向分解路由,相当于给url取个体名,只要这个名字稳定,即使对应的url改变#经过该名字也能找到该条url
复制代码
9. 罗列django的内置组件?
  1. #1.Admin是对model中对应的数据表举行增删改查供给的组件#2.model组件:负责操纵数据库#3.form组件:1.天生HTML代码2.数占有用性校验3校验信息返回并展现#4.ModelForm组件即用于数据库操纵,也可用于用户请求的考证
复制代码
10. 说一下Django,MIDDLEWARES中心件的感化和利用处景?
  1. #中心件是介于request与response处置惩罚之间的一道处置惩罚进程,用于在全局范围内改变Django的输入和输出。#简单的来说中心件是帮助我们在视图函数尝试之前和尝试以后都可以做一些额外的操纵#例如:#1.Django项目中默许启用了csrf保护,每次请求时经过CSRF中心件检查请求中能否有切确#token值#2.当用户在页面上发送请求时,经过自界说的认证中心件,判定用户能否已经登陆,未登陆就去登陆。#3.当有用户请求过来时,判定用户能否在白名单大要在黑名单里
复制代码
11. 罗列django中心件的5个方式?
  1. #1.process_request : 请求进来时,权限认证#2.process_view : 路由婚配以后,可以大要获得视图函数#3.process_exception : 很是时尝试#4.process_template_responseprocess : 模板衬着时尝试#5.process_response : 请求有响应时尝试
复制代码
12. django的request工具是在什么时候建立的?
  1. #class WSGIHandler(base.BaseHandler):#    request = self.request_class(environ)#请求走到WSGIHandler类的时候,尝试__cell__方式,将environ封装成了request
复制代码
13. Django重定向是怎样实现的?用的什么状态码?
  1. #1.操纵HttpResponseRedirect#from django.http import HttpResponseRedirect  #2.操纵redirect和reverse#状态码:301和302#301和302的区分:#类似点:都表示重定向,欣赏器在拿到办事器返回的这个状态码后会自动跳转到一个新的URL地点#不同点:#301比力常用的场景是操纵域名跳转。比如,我们拜候 http://www.baidu.com 会跳转到 https://www.baidu.com#表示旧地点A的资本已经被永久地移除了#302用来做姑且跳转,比如未登陆的用户拜候用户中心重定向到登录页面。表示旧地点A的资本还在(仍然可以拜候),这个重定向只是姑且地从旧地点A跳转到地点B
复制代码
14. xxss进犯
  1. #-- XSS进犯是向网页中注入恶意剧本,用在用户欣赏网页时,在用户欣赏器中尝试恶意剧本的进犯。#    -- XSS分类,反射型xss ,存储型xss#    -- 反射型xss又称为非长久型xss,进犯者经过电子邮件等方式将包含注入剧本的链接发送给受害者,#        受害者经过点击链接,尝试注入剧本,到达进犯目标。#    -- 长久型xss跟反射型的最大不同是进犯剧本将被永久的寄存在目标办事器的数据库和文件中,多见于论坛#        进犯剧本连同一般信息一同注入到帖子内容傍边,当欣赏这个被注入恶意剧本的帖子的时候,恶意剧本会被尝试#    -- 提防步伐 1 输入过滤  2 输出编码  3 cookie防盗#        1,输入过滤 用户输入举行检测 不答应带有js代码#        2,输出编码 就是把我们的剧本代码酿成字符串形式输出出来#        3,cookie加密                        #向页面注入恶意的代码,这些代码被欣赏器尝试#XSS进犯能做些什么:#    1.盗取cookies#    2.读取用户未公然的材料,假如:邮件列表大要内容、系统的客户材料,联系人列表#治理方式:#    1.客户度端:表单提交之前大要url转达之前,对必要的参数举行过滤#    2.办事器端:检查用户输入的内容能否有不法内容
复制代码
15. django中csrf的实现机制
  1. #第一步:django第一次响应来自某个客户真个请求时,后端随机发生一个token值,把这个token保存在SESSION状态中;同时,后端把这个token放到cookie中交给前端页面;#第二步:下次前端必要倡议请求(比如发帖)的时候把这个token值加入到请求数据大要头信息中,一路传给后端;Cookies:{csrftoken:xxxxx}#第三步:后端校验前端请求带过来的token和SESSION里的token能否齐截;
复制代码
16. 基于django操纵ajax发送post请求时,都可以操纵哪类方式照顾csrf token?
  1. #1.后端将csrftoken传到前端,发送post请求时照顾这个值发送data: {             csrfmiddlewaretoken: '{{ csrf_token }}'        },#2.获得form中潜伏标签的csrftoken值,加入到请求数据中传给后端 data: {         csrfmiddlewaretoken:$('[name="csrfmiddlewaretoken"]').val()         },#3.cookie中存在csrftoken,将csrftoken值放到请求头中headers:{ "X-CSRFtoken":$.cookie("csrftoken")},
复制代码
17. Django自己供给了runserver,为什么不能用来安排?(runserver与uWSGI的区分)
  1. #1.runserver方式是调试 Django 时经常用到的运转方式,它操纵Django自带的#WSGI Server 运转,重要在测试和斥地中操纵,而且 runserver 开启的方式也是单进程 。#2.uWSGI是一个Web办事器,它实现了WSGI协议、uwsgi、http 等协议。留意uwsgi是一种通讯协议,而uWSGI是实现uwsgi协讲和WSGI协议的 Web 办事器。#uWSGI具有超快的性能、低内存占用和多app治理等优点,而且搭配着Nginx就是一个生产情况了,可以大要将用户拜候请求与利用 app 隔离开,实现实在的安排 。#相比来说,支持的并发量更高,方便治理多进程,发挥多核的上风,提拔性能。
复制代码
18. cookie和session的区分:
  1. #1.cookie:#    cookie是保存在欣赏器真个键值对,可以用来做用户认证#2.session:#   将用户的会话信息保存在办事端,key值是随机发生的自符串,value值时session的内容#    依靠于cookie将每个用户的随机字符串保存到用户欣赏器上#Django中session默许保存在数据库中:django_session表#flask,session默许将加密的数据写在用户的cookie中
复制代码
19. 罗列django orm 中全数的方式(QuerySet工具的全数方式)
  1. # all():                  查询全数结果 # filter(**kwargs):       它包含了与所给挑选条件相婚配的工具。获得不到返回None# get(**kwargs):          返回与所给挑选条件相婚配的工具,返回结果有且只要一个。获得不到会抱胸#假如合适挑选条件的工具超出一个大要没有城市抛出错误。# exclude(**kwargs):      它包含了与所给挑选条件不婚配的工具# order_by(*field):       对查询结果排序# reverse():              对查询结果反向排序 # count():                返回数据库中婚配查询(QuerySet)的工具数目。 # first():                返回第一笔记录 # last():                返回末端一笔记录 # exists():              假如QuerySet包含数据,就返回True,否则返回False# values(*field):        返回一个ValueQuerySet——一个特此外QuerySet,运转后获得的并不是一系 model的实例化工具,而是一个可迭代的字典序列# values_list(*field):   它与values()很是类似,它返回的是一个元组序列,values返回的是一个字典序列# distinct():            从返回结果中剔除反复记录
复制代码
20. only和defer的区分?
  1. #only:从数据库中只取指定字段的内容#defer:指定字段的内容不被检索
复制代码
21. select_related和prefetch_related的区分?
  1. #有外键存在时,可以很好的淘汰数据库请求的次数,进步性能#select_related经过量表join关联查询,一次性获得全数数据,只尝试一次SQL查询#prefetch_related别离查询每个表,然后按照它们之间的关系举行处置惩罚,尝试两次查询
复制代码
22. filter和exclude的区分?
  1. #取到的值都是QuerySet工具,filter挑选满足条件的,exclude:断根满足条件的.
复制代码
23. F和Q的感化?
  1. #F:对数据自己的不同字段举行操纵 如:比力和更新#Q:用于机关复杂的查询条件 如:& |操纵
复制代码
24. values和values_list的区分?
  1. #values : 取字典的queryset#values_list : 取元组的queryset
复制代码
25. 怎样操纵django orm批量建立数据?
  1. #bulk_create()#objs=[models.Book(title="图书{}".format(i+15)) for i in range(100)]#models.Book.objects.bulk_create(objs)
复制代码
26. django的Form和ModeForm的感化?
  1. #Form感化:#    1.在前端天生HTML代码#    2.对数据作有用性校验#    3.返回校验信息并展现#ModeForm:按照模子类天生From组件,而且可以操纵数据库
复制代码
27. django的Form组件中,假如字段中包含choices参数,请操纵两种方式实现数据源实时更新。
  1. #1.重写机关函数def def __init__(self, *args, **kwargs):        super().__init__(*args, **kwargs)        self.fields["city"].widget.choices = models.City.objects.all().values_list("id", "name")#2.操纵ModelChoiceField字段,参数为queryset工具
复制代码
28. django的Model中的ForeignKey字段中的on_delete参数有什么感化?
  1. #删除关联表中的数据时,当前表与其关联的field的操纵#django2.0以后,表与表之间关联的时候,必必要写on_delete参数,否则会报很是
复制代码
29. 罗列django orm中三种能写sql语句的方式。
  1. #1.操纵execute尝试自界说的SQL#2.操纵extra方式 #3.操纵raw方式#    1.尝试原始sql并返回模子#    2.依靠model多用于查询
复制代码
30. django orm 中怎样设备读写分手?
  1. #1.手动读写分手:经过.using(db_name)来指定要操纵的数据库#2.自动读写分手:#    1.界说类:如Router#    2.设备Router#        settings.py中指定DATABASE_ROUTERS#        DATABASE_ROUTERS = ['myrouter.Router',] #进步读的性能:多设备几个数据库,并在读取时,随机拔取。写的时候写到主库#实现app之间的数据库分手:分库分表
复制代码
31. django中怎样实现orm表中增加数据时建立一条日志记录。

32. django内置的缓存机制?
  1. # 全站缓存MIDDLEWARE_CLASSES = (    ‘django.middleware.cache.UpdateCacheMiddleware’, #第一    'django.middleware.common.CommonMiddleware',    ‘django.middleware.cache.FetchFromCacheMiddleware’, #末端) # 视图缓存from django.views.decorators.cache import cache_pageimport time  @cache_page(15)          #超不时候为15秒def index(request): t=time.time()      #获得当前时候 return render(request,"index.html",locals()) # 模板缓存{% load cache %} [size=4]不缓存:-----{{ t }}[/size]
  2.   {% cache 2 'name' %} # 存的key [size=4]缓存:-----:{{ t }}[/size]
  3. {% endcache %}
复制代码
33. django的缓存能操纵redis吗?假如可以的话,怎样设备?
  1. #1.安装 pip install django-redis#2.在stting中设备CACHES,可以设备多个缓存,按照名字操纵        CACHES = {            "default": {                "BACKEND": "django_redis.cache.RedisCache",                "LOCATION": "redis://127.0.0.1:6379",                "OPTIONS": {                    "CLIENT_CLASS": "django_redis.client.DefaultClient",                    "CONNECTION_POOL_KWARGS": {"max_connections": 100}                    # "PASSWORD": "密码",                }            }        },        #另增加缓存        "JERD": { }#3.按照名字去毗连池中获得毗连        from django_redis import get_redis_connection        conn = get_redis_connection("default")
复制代码
34. django的模板中filter和simple_tag的区分?
  1. # 自界说filter:{{ 参数1|filter函数名:参数2 }}#    1.可以与if标签来连用#    2.自界说时必要写两个形参# simple_tag:{% simple_tag函数名 参数1 参数2 %}#    1.可以传多个参数,没有限制#    2.不能与if标签来连用
复制代码
35. django-debug-toolbar的感化?
  1. #1.是django的第三方工具包,给django扩大了调试功用#包含检察sql语句,db查询次数,request,headers等
复制代码
36. django中怎样实现单元测试?

37. 表白orm中 db first 和 code first的寄义?
  1. #数据长久化的方式:#db first基于已存在的数据库,天生模子#code first基于已存在的模子,天生数据库库
复制代码
38. django中怎样按照数据库表天生model中的类?
  1. #1.在settings中设备要毗连的数据库#2.天生model模子文件#python manage.py inspectdb#3.模子文件导入到models中#    python manage.py inspectdb > app/models.py
复制代码
39. 操纵orm和原生sql的优弱点?
  1. #1.orm的斥地速度快,操纵简单。使斥地加倍工具化#尝试速度慢。处置惩罚多表联查等复杂操纵时,ORM的语法会变得复杂#2.sql斥地速度慢,尝试速度快。性能强
复制代码
40. django的contenttype组件的感化?
  1. #这个组件保存了项目中全数app和model的对应关系,每当我们建立了新的model并尝试数据库迁移后,ContentType表中就会自动新增一笔记录#当一张表和多个表FK关联,而且多个FK中只能挑选其中一个或其中n个时,可以操纵contenttypes
复制代码
41. 谈谈你对restful标准的熟悉?
  1. #首先restful是一种软件架构气概大要说是一种筹划气概,并不是标准,它只是供给了一组筹划#原则和约束条件,重要用于客户端和办事器交互类的软件。     #就像筹划形式一样,并不是必定要遵照这些原则,而是基于这个气概筹划的软件可以更简洁,更#有条理,我们可以按照斥地的现真相况,做响应的改变。#它里面提到了一些标准,例如:#1.restful 提倡面向资本编程,在url接口中尽管要操纵名词,不要操纵动词             #2、在url接口及第荐操纵Https协议,让收集接口加倍平安#https://www.bootcss.com/v1/mycss?page=3#(Https是Http的平安版,即HTTP下加入SSL层,HTTPS的平安底子是SSL,#是以加密的具体内容就必要SSL(平安套接层协议))                          #3、在url中可以表示版本号#https://v1.bootcss.com/mycss#差此外版本可以有差此外接口,使其加倍简洁,清楚             #4、url中可以表示能否是API接口 #https://www.bootcss.com/api/mycss            #5、url中可以增加条件去挑选婚配#https://www.bootcss.com/v1/mycss?page=3             #6、可以按照Http差此外method,举行差此外资本操纵#(5种方式:GET / POST / PUT / DELETE / PATCH)             #7、响应式应当设备状态码#8、有返回值,而且格式为同一的json格式             #9、返回毛病信息#返回值照顾毛病信息             #10、返回结果中要供给帮助链接,即API最好做到Hypermedia#假如碰到必要跳转的情况 照顾调转接口的URL      ret = {            code: 1000,            data:{            id:1,            name:'小强',            depart_id:http://www.luffycity.com/api/v1/depart/8/            }    }
复制代码
42. 接口的幂等性是什么意义?
  1. #1.是系统的接口对外一种答应(而不是实现)#2.答应只要挪用接口乐成,内部屡次挪用对系统的影响都是齐截的,不会对资本反复操纵
复制代码
43. 什么是RPC?
  1. #远程进程挪用 (RPC) 是一种协议,步伐可操纵这类协议向收集合的另一台盘算机上的步伐请求办事#1.RPC采纳客户机/办事器形式。请求步伐就是一个客户机,而办事供给步伐就是一个办事器。#2.首先,客户机挪用进程发送一个有进程参数的挪用信息到办事进程,然后等待应对信息。#2.在办事器端,进程连结寝息状态直到挪用信息到达为止。当一个挪用信息到达,办事器获得进程参数,盘算结果,发送复兴信息,然后等待下一个挪用信息,#3.末端,客户端挪用进程吸收复兴信息,获得进程结果,然后挪用尝试继续举行。
复制代码
44. 为什么要操纵API
  1. #系统之间为了挪用数据。#数据传输格式:#    1.json#     2.xml
复制代码
45. 为什么要操纵django rest framework框架?
  1. #能自动天生合适 RESTful 标准的 API#1.在斥地REST API的视图中,固然每个视图具体操纵的数据不同,#但增、删、改、查的实现流程底子一样,这部分的代码可以简写#2.在序列化与反序列化时,固然操纵的数据不同,可是尝试的进程却类似,这部分的代码也可以简写#REST framework可以帮助简化上述两部分的代码编写,大猛进步REST API的斥地速度
复制代码
46. django rest framework框架中都有那些组件?
  1. #1.序列化组件:serializers  对queryset序列化以及对请求数据格式校验#2.路由组件routers 举行路由分发#3.视图组件ModelViewSet  帮助斥地者供给了一些类,并在类中供给了多个方式#4.认证组件 写一个类并注册到认证类(authentication_classes),在类的的authticate方式中编写认证逻#5.权限组件 写一个类并注册到权限类(permission_classes),在类的的has_permission方式中编写认证逻辑。 #6.频次限制 写一个类并注册到频次类(throttle_classes),在类的的allow_request/wait 方式中编写认证逻辑#7.分解器  挑选对数据分解的类,在分解器类中注册(parser_classes)#8.衬着器 界说数据怎样衬着到到页面上,在衬着器类中注册(renderer_classes)#9.分页  对获得到的数据举行分页处置惩罚, pagination_class#10.版本  版本控制用来在差此外客户端操纵差此外活动#在url中设备version参数,用户请求时候传入参数。在request.version中获得版本,按照版本不同 做不同处置惩罚
复制代码
47. django rest framework框架中的视图都可以继续哪些类?
  1. #class View(object):#class APIView(View): 封装了view,而且重新封装了request,初始化了各类组件#class GenericAPIView(views.APIView):#1.增加了一些属性和方式,如get_queryset,get_serializer#class GenericViewSet(ViewSetMixin, generics.GenericAPIView)#父类ViewSetMixin 重写了as_view,返回return csrf_exempt(view)#并重新设备请求方式与尝试函数的关系#class ModelViewSet(mixins.CreateModelMixin,#                   mixins.RetrieveModelMixin,#                   mixins.UpdateModelMixin,#                   mixins.DestroyModelMixin,#                   mixins.ListModelMixin,#                   GenericViewSet):pass#继续了mixins下的一些类,封装了list,create,update等方式#和GenericViewSet
复制代码
48. 简述 django rest framework框架的认证流程
  1. #1.用户请求走进来后,走APIView,初始化了默许的认证方式#2.走到APIView的dispatch方式,initial方式挪用了request.user#3.假如我们设备了认证类,走我们自己认证类中的authentication方式
复制代码
49. django rest framework怎样实现的用户拜候频次控制
  1. #操纵IP/用户账号作为键,每次的拜候时候戳作为值,机关一个字典形式的数据,存起来,每次拜候时对时候戳列表的元素举行判定,#把超时的删掉,再盘算列表残剩的元素数就能做到频次限制了 #匿名用户:操纵IP控制,可是没法完全控制,由于用户可以换代理IP登录用户:操纵账号控制,可是倘使有很多账号,也没法限制
复制代码
50. rest_framework序列化组件的感化,以及一些外键关系的钩子方式
  1. #感化:帮助我们序列化数据#1.choices  get_字段名_display#2.ForeignKey source=orm 操纵#3.ManyToManyFiled  SerializerMethodField()#                    def get_字段名():#                    return 自界说
复制代码
51. 给用户供给一个接口之前必要提早做什么
  1. #1.跟前端举行和交互,肯定前端要什么#2.把需求写个文档保存
复制代码
52. PV和UV
  1. #1.pv:页面拜候量,没翻开一次页面PV盘算+1,页面革新也是#2.UV:自力拜候数,一台电脑终端为一个访客
复制代码
53. 什么是跨域以及治理方式:
  1. #跨域:# 欣赏器从一个域名的网页去请求另一个域名的资本时,欣赏器处于平安的考虑,不答应不同源的请求#同源计谋:#  协议类似#  域名类似#  端口类似#处置惩罚方式:# 1.经过JSONP跨域# JSON是一种数据交换格式# JSONP是一种非官方的跨域数据交互协议# jsonp是包含在函数挪用中的json# script标签不受同源计谋的影响,手动建立一个script标签,转达URL,同时传入一个回调函数的名字# 办事器获得名字后,返回数据时会用这个函数名来包裹住数据,客户端获得到数据以后,立即把script标签删掉# 2.cors:跨域资本同享# 操纵自界说的HTTP头部答应欣赏器和办事器相互通讯# 1.假如是简单请求,间接设备答应拜候的域名:#   答应你的域名来获得我的数据                         #   response['Access-Control-Allow-Origin'] = "*"# 2.假如是复杂请求,首先会发送options请求做预检,然后再发送实在的PUT/POST....请求#   是以假如复杂请求是PUT等请求,则办事端必要设备答应某请求#   假如复杂请求设备了请求头,则办事端必要设备答应某请求头#简单请求:#    一次请求 #非简单请求:#    两次请求,在发送数据之前会先发一次请求用于做“预检”,#    只要“预检”通事后才再发送一次请求用于数据传输。#只要同时满足以下两大条件,就属于简单请求。                             # (1) 请求方式是以下三种方式之一:HEAD  GET POST# (2)HTTP的头信息不超越以下几种字段:                                     #   Accept                                     #   Accept-Language                                     #   Content-Language#   Last-Event-ID#  Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、 text/plain #JSONP和CORS:#   1.JSONP只能实现GET请求,而CORS支持全数典范的HTTP请求#   2.jsonp必要client和server真个相互配合#   3.cors在client端无需设备,server端必要针对差此外请求,来做head头的处置惩罚
复制代码
54. 怎样实现用户的登陆认证
  1. #1.cookie session#2.token 登陆乐成后天生加密字符串#3.JWT:json wed token缩写 它将用户信息加密到token中,办事器不保存任何用户信息#办事器经过操纵保存的密钥来考证token的切确性
复制代码
55. 怎样将dict转换成url的格式:
  1. #操纵urlencode#from urllib.parse import urlencode#post_data={"k1":"v1","k2":"v2"}#ret=urlencode(post_data)#print(ret,type(ret))  #k1=v1&k2=v2
复制代码
免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 妈妈网-中国妈妈第一,是怀孕、育儿、健康等知识交流传播首选平台 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表