django视图怎么获取表单提交的内容(2023年最新解答)

如题所述

第1个回答  2024-09-05

导读:本篇文章首席CTO笔记来给大家介绍有关django视图怎么获取表单提交的内容的相关内容,希望对大家有所帮助,一起来看看吧。

django编辑表单,数据怎么回显呀

如果我没有理解错误,这个很基本啊。在python教程里就有。所以我想你应该是对django还不熟悉。看看它官网上的那个教程。英文的,仔细,耐心些边看边练,看完它。

简单说django通过设置model将数据库的数据可以方便的通过class.objects.all这样的方法拿到,也可以使用get和filter等。拿到数据后,它存在model里的类的对象里。然后你将这个变量传递到template里去。在template里再将变量显示在html里。

通过HttpResponse这样的对象再将html返回给浏览器。

还有一种略简洁的方法,但是原理一样。里面有一个form对象,可以简化模板的使用,让传递变量更简单,不过做起model来,就更复杂一些。

django用视图函数获取htmlform中的用户输入值

fromdjango.views.decorators.csrfimportcsrf_exempt

在你的函数前面加上csrf_exempt装饰器

例如:

@csrf_exempt

defget_A(request):

另外,在模板里,在form标签里加上{%csrf_token%}

例如:

formaction=...method="post"...

{%csrf_token%}

inputtype=“text"name="a"test/input

求助django实现前端页面检索功能的代码

设我们的django博客应用有如下的文章模型:

blog/models.pyclassPost(models.Model):

#标题

title=models.CharField(max_length=70)

#正文

body=models.TextField()

#其他属性

def__str__(self):

returnself.title

先看到第1步,用户在搜索框输入搜索关键词,因此我们要在博客上为用户提供一个搜索表单,html表单代码大概像这样:

formmethod="get"action="/search/"

{%csrf_token%}inputtype="search"placeholder="搜索"required

buttontype="submit"搜索/button/form

特别注意在form标签下有一个{%csrf_token%},这是django用来防御跨站请求伪造(CSRF)攻击的机制。如果不知道什么是CSRF的话也没有关系,只要记住在使用django时,前端的表单代码里一定要加上{%csrf_token%}。

用户输入了搜索关键词并点击了搜索按钮后,数据就被发送给了django后台服务器。表单的action属性的值为/search/,表明用户提交的结果将被发送给/search/这个URL。我们为这个URL绑定一个django视图函数,在这个视图函数里完成前面第2步提到的过程。假设我们把视图函数的代码写在blog/views.py里:

blog/views.pydefsearch(request):

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

error_msg=''

ifnotq:

error_msg='请输入关键词'

returnrender(request,'blog/errors.html',{'error_msg':error_msg})

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

returnrender(request,'blog/results.html',{'error_msg':error_msg,

'post_list':post_list})

首先我们使用request.GET.get('q')获取到用户提交的搜索关键词。用户通过表单提交的数据django为我们保存在request.GET里,这是一个类似于Python字典的对象,所以我们使用get方法从字典里取出键q对应的值,即用户的搜索关键词。这里字典的键之所以叫q是因为我们的表单中搜索框input的name属性的值是q,如果修改了name属性的值,那么这个键的名称也要相应修改。

接下来我们做了一个小小的校验,如果用户没有输入搜索关键词而提交了表单,我们就无需执行查询,而是渲染一个错误页面提示用户请输入关键词。

如果用户输入了搜索关键词,我们就通过filter方法从数据库里过滤出符合条件的所有文章。这里的过滤条件是title__icontains=q,即title中包含(contains)关键字q,前缀i表示不区分大小写。这里icontains是查询表达式(Fieldlookups),其用法是在模型需要筛选的属性后面跟上两个下划线。django内置了很多查询表达式,建议过一遍django官方留个印象,了解每个表达式的作用,以后碰到相关的需求就可以快速定位到文档查询其用途:Fieldlookups

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

results.html

{%iferror_msg%}p{{error_msg}}/p{%endif%}

{%forpostinpost_list%}div

在这里显示文章的相应信息/div{%empty%}divclass="no-post"

没有搜索到符合条件的文章/div{%endfor%}

有了视图函数后记得把视图函数映射到相应了URL,前面我们表单数据提交的URL为/search/,因此将视图函数search绑定到该URL上。

blog/urls.pyurlpatterns=[

#其他url配置

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

大功告成!

在djangoform里面要怎么显示数据库中已有的数据,并更新数据?

最简单的办法是。为数据库的表建立一个model。具体做法是这样子。

1.在settings.py里设置数据库连接方式。连接错误后面都没有办法

2.在models设置一个数据库表的对应数据结构,通常叫关系对象模型,所以叫model,它就是一个类。你可以用django-admin.py...probe,似乎是这个命令,就是一个数据库的探测命令,可以根据表,自动生成model的代码。当然如果你先写了model的代码就可以用syncdb命令生成数据库的表

3.在urls.py里设置一个URL的path,当浏览器访问这个path时就可以打开对应的view中的函数

4.在view里

4.1result=modelclass.objects.all()这个命令可以取出所有的记录

4.2然后你可以直接将结果传递给模板。由模板显示。这是最合理的办法

4.3在模板里{%forcolsinresult%}

4.4licols.field1/li

大约就是这样子。可能说的太粗。你对着教程看就知道了。

django表单提交问题

好好看看django官网的url配置,你提交表单的action的url有没有配置好?

Django的web项目,怎样在引用的外部js文件中实现form表单内容提交到action的路径中?

话说你为什么一定要把表里的内容通过get提交呢,一点也不安全。实际开发几乎没人这么干,特别是这种私人信息。但是也有招能搞定。你在input中添加一个onclick='tijiao();'

js中加一个方法

functiontijiao(){

window.href='url?'+encodeURIComponent(你想提交的form表单信息)+''+encodeURIComponent(你想提交的form表单信息);

}

若不想跳转页面请用ajax,参数也要加密

encodeURIComponent是将敏感信息加密。你可以在url这个路径的页面上通过decodeURIComponent解码就行了

望采纳哦

结语:以上就是首席CTO笔记为大家介绍的关于django视图怎么获取表单提交的内容的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。

logo设计

创造品牌价值

¥500元起

APP开发

量身定制,源码交付

¥2000元起

商标注册

一个好品牌从商标开始

¥1480元起

公司注册

注册公司全程代办

¥0元起

    官方电话官方服务
      官方网站八戒财税知识产权八戒服务商企业需求数字市场
相似回答
大家正在搜