简介:本文的首席执行官注释将介绍有关Django如何处理前端请求的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
类别和vue接口对接
首先是取出所有类别的所有内容
由于前端vue显示类别已分类
第一级,两个级别和三个级别如下
因此,我们需要取出所有三个内容
但首先,您需要拿出第一级,然后镶嵌第二级,然后在第三季度插入第二级,就像上面商品中显示的类别的内容一样。
我们仍然需要编写序列化器
这是第一个级别的第二级第二级第二级镶嵌第三级 -
但是这里有一个问题,不要犯错。这三个类别的立场并不是错误的。
因为第一级正在调用第二级,所以必须先写第二级
因此,第二级必须处于相同级别的相同级别。
然后是视图
在过滤器中添加类别_type = 1,以便您可以直接显示第一个类别,然后对第二个小类别有更分层的感觉。
同时,我们必须处理单个信息
因此,我们继承了Mixins.RetRieveModelMixin,这是一个显示详细信息的类
例如,在动物园中显示某个动物
/zoos/id
这样的URL
同样,我们只能直接配置类别的URL。
您不需要考虑以后的ID是否需要配置URL。您不需要考虑它,因为我们继承了视图类
他帮助我们解决了这些问题
您可以以这种方式看到它来处理我们的后端
但是,在处理前端对接时,您会发现它无法显示
因为有一个十字架问题
这个问题可以单独解决前后的后端,因此请谈谈后端方法
只需修改服务方
在GitHub上搜索Django-Cors-neaders以查找此信息
如何以相同的方式使用它
安装
PIP安装django-cors头
然后在Settins中的intasted_apps配置和设置中的中间件配置
请注意此处的中间软件配置
'corsheaders.middleware.corsmiddleware',
'django.middleware.common.commonmiddleware',
这两个必须放在
'django.middleware.csrf.csrfviewmiddleware',,
否则,这将在此前面有错误
也配置
cors_origin_allow_all = true
允许交叉域访问其默认值是错误的
这可以正常显示在前端
为什么发生交叉域访问
因为在VUE中的API配置中,我们可以修改所有主机。一些在线数据。我们调试本地数据的一部分,因此我们需要重新确定本地主机
修改一些主机链接
这导致使用在线主机端口的交叉域本身,但是数据中的某些数据是本地主机端口导致交叉域访问
真正的 - 收到此内容的时间与Django后台无关。关键是实时请求前端。这可以通过AJAX实现。
特点
字符形的数据相对容易获得。
senddata = {“ exportType”:exportType,exportType,
“ bugids”:bugids,
“测试”:json.stringify({“ test”:“ test”})
};
只需使用exportType = request.get.get.get(“ exportType”)在django的后端
您可以正常获取此数据。
注意:Python2.7中的数据由Unicode编码。如果您想使用它,有时您需要转向str
结果:示例:
DEBL类型“ Unicode”
大批
获取数组类型的数据。如果您使用获得字符串数据的方法,则结果无。我们想使用此方法:
bugids = request.get.getList(“ bugids []”)
以这种方式获得的数据是数组类型。
注意:所获得的数组中的元素是Unicode编码的,并且需要某个点需要该部分
结果:示例:
?通过URL
[14/JUL/2016 11:00:41]“ get/testtools/exportbug/?exportType = exporttype = explbugids%5b%5d = 102bugids%5D = 101bugids%5D
?获得的数据
[u'102',u'101',u'100',u'99',u'98',u'97',u'96',u'96',u'95',u'94',u'94',u'93',u'92',u'91',u'90',u'89',u'88',u'87'
典型的
典型数据可以视为字符串数据。获得相应的字符串后,您可以使用JSON模块将其格式化。
对于前端,传递字典的典型数据是传递JSON数据,因此使用方法是:
“测试”:json.stringify({“ test”:“ test”})
结果:示例:
{“ test”:“ test”}键入'unicode'
相关的源代码
?获取方法
GET方法是WSGI中的一种方法。
def获取(自我):
#WSGI规格说“ query_string”可能是清晰的。
raw_query_string = get_bytes_from_wsgi(self.envring,'query_string','')
返回http.querydict(raw_query_string,encoding = self._encoding)
最终返回是http.querydict(raw_query_string,encoding = self._encoding)http的原始数据,而QueryDict在MultivalueDics中继承了,因此我们只看了多亚数。
?数量化
实际上,源代码看起来并不困难。
def get(self,key,default = none):
”“”
返回传递密钥的最后一个数据值。如果键do
或值是一个空列表,然后默认被拒绝。
”“”
尝试:
val = self [键]
除了键:
返回默认值
如果值== []:
返回默认值
返回阀
def getList(self,key,default = none):
”“”
返回传递密钥的值列表。如果键不存在,
然后重新列出默认值。
”“”
尝试:
返回super(Multivaledict,self).__ getItitItem __(键)
除了键:
如果默认为无:
返回 []
返回默认值
def __getItem __(self,key):
”“”
返回该密钥的最后一个数据值,或[]如果是一个空列表;
如果找不到的话,请提高钥匙扣。
”“”
尝试:
list_ = super(MultivalueDict,self).__ getItitItem __(键)
除了键:
提高MultivaleMedIctKeyError(reter(key))
尝试:
返回列表_ [-1]
除了IndexError:
返回 []
通常,客户端(即您说的前段)和服务器(您将使用Django)通过HTTP协议(除非有特殊需求,否则您将使用其他或自定义的协议)。
在客户端(PYQT)中,您可以安装请求库,该请求库可以帮助您将HTTP请求发送到服务器,
在Django中,您可以使用Django Rest Framework Web链接来处理客户端的HTTP请求。
结论:以上是Django相关内容如何要求首席CTO注释编制的前端请求的相关内容。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?
