当前位置: 首页 > 网络应用技术

Django如何获得不同形式的前端形式(2023年的最新答案)

时间:2023-03-06 19:11:50 网络应用技术

  简介:许多朋友问有关Django如何收到不同形式的前端形式的问题。首席执行官在本文中注明将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  这是通过URL的参数,然后应使用:

  request.query_params获取QueryDict的类型,使用要转换为dict的dict()方法

  通过请求获得的参数是querydict的类型。这只是在这里获得。Querydict类包含许多方法。有关详细信息,请参考:

  request.data作为dict类型

  request.data还获得了查询类型,采集方法可以参考链接

  注意:

  这全都基于REST框架中的Apiview类的请求以获取参数!

  我总是报告一个错误,说我的前端网页没有由文件或文件路径上传,那么在保留服务器之前,必须找到它。

  特点

  字符形的数据相对容易获得。

  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后台无关。关键是实时请求前端。这可以通过AJAX实现。

  让我们的Django博客应用程序具有以下文章模型:

  Blog/models.pyclass帖子(Models.Model):

  # 标题

  title = models.charfield(max_length = 70)

  #正正

  body = model.textfield()

  #其他属性

  def __str __(self):

  返回self.title

  首先,请参见步骤1,用户在搜索框中输入搜索关键字,因此我们需要为博客上的用户提供搜索表格。HTML表单代码可能是这样的:

  形式方法=“ get” action =“/search/”

  {%csrf_token%}输入类型=“搜索”占位符=“搜索”需要

  按钮类型=“提交”搜索/按钮/表单

  特别是,在表单标签下有一个{%csrf_token%}。这是Django捍卫Cross -Site请求伪造(CSRF)攻击的一种机制。如果您不知道CSRF是什么,这没关系。请记住,使用Django时,您必须将{%csrf_token%}添加到前端表单代码。

  用户输入搜索关键字并单击搜索按钮后,将数据发送到Django背景服务器。表单的操作属性的值为 /搜索 /,表明用户提交的结果将发送到/search /this URL.我们绑定此URL的DJANGO视图函数,并在此视图函数中完成上一步2中提到的过程。支持我们在blog /views.py中编写视图函数的代码:

  blog/views.pydef搜索(请求):

  q = request.get.get('q')

  error_msg =''

  如果不是Q:

  error_msg ='请输入关键字'

  返回渲染(请求,'blog/errors.html',{'error_msg':error_msg})

  post_list = post.objects.filter(title__icontains = q)

  返回渲染(请求,'blog/results.html',{'error_msg':error_msg,

  'post_list':post_list})

  首先,我们使用request.get.get('q')获取用户提交的搜索关键字。用户通过表格Django提交的django存储在request.get中。这是一个类似于Python字典的对象,因此我们使用GET方法从字典中删除键Q的值,即用户的搜索关键字。此处的字典键称为,因为该字典的键是因为我们表格中输入框的名称属性为Q。如果修改了名称属性的值,则必须对此键的名称进行相应修改。

  接下来,我们进行了少量验证。如果用户在不输入搜索关键字的情况下提交表单,则我们不需要执行查询,而是渲染错误的页面来指示用户应输入关键字。

  如果用户输入搜索关键字,我们将通过过滤器方法从数据库中滤除所有合格的文章。此处的过滤条件是title__icontains = q,即关键字q包含(包含)关键字q,而前缀i表示,它没有区分情况。iContains是一个字段查找,用于与需要筛选的模型背后的两个下属线保持一致。Django有很多查询表达式。建议留下官方印象,以了解每个表达的角色。将来,您可以快速定位文档以查询文档的目的:现场查找

  下一步是渲染搜索结果页面,显示符合搜索条件的文章列表。以下是模板的简单示例:

  results.html

  {%如果error_msg%} p {{error_msg}/p {%endif%}

  {post_list%} div中的帖子

  在此处显示文章的相应信息 /div {%空%} div class =“ no-pos”

  没有合格的文章 /div {%endfor%}

  视图函数后,请记住将视图函数映射到相应的URL。通过我们的表单数据提交的URL为 /搜索 /,因此视图功能搜索被键入URL。

  blog/urls.pyurlpatterns = [

  #其他URL配置

  url(r'^search/$',views.search,name ='search'),]],]]

  更大的功绩!

  因为客户端传递的数据是JSON数据,可以将其视为JSON对象。它不是通过的通过表单,因此您使用request.post.get('id'','').def datasave(请求):dict = {} info ='数据日志保存成功'尝试:如果request.method =='p

  结论:以上是首席CTO的相关内容的摘要,请注意Django如何获得前端不同形式的相关内容。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?