发布网友 发布时间:2024-09-30 10:48
共1个回答
热心网友 时间:2024-12-04 09:00
django2.0,实现搜索数据库数据并显示在网页的功能我没环境,不方便帮你写代码,但可以告诉你思路:
你想用ajax方式查数据,第一步,你已经获取到了输入表单的的值,这很好。
第二步,你需要添加一个查询接口路由,和view,用来返回查询到后数据。
第三步,让前端js代码,用ajax的方式,请求你添加的查询路由地址,带上参数。
第四步,在路由对应的view代码中,获取通过url请求传过来的参数。
第五步,在view代码中,对参数进行检查,通过后,调用数据查询方法,获取结果集。
第六步,在view代码中,将结果集转为json(一般是json),返回。
第七步,ajax在收到返回结果后,将数据显示在网页中。
第八步,调整数据显示的样式,使之美观一点。
如有不明可以追问,或私信留言。
Django中将一个文本框中的数据通过点击按钮保存到数据库
可以在template中写一个form提交形式为post,在view中通过request.Post()读取相应的数据,再通过update或者是create(这个查一下对应数据库操作),按照这个顺序就可以了。
或者是使用Python写一个form表单,在template中使用{{forms.a_p}}等格式的输出,在view中对应更新数据,也可以。
django怎么在admin里显示数据库的内容操作方法:首先要运行pythonmanage.pycreatesuperuser命令来创建一个管理员账户。
然后在url中输入/admin即可到达管理员登录页,登录之后会发现并没有数据库中要显示的项目,因为我们还没有注册。
接下来我们注册要在admin中管理的数据模型;在admin.py中注册模型。然后刷新页面,即可看到ContactMessage这个数据表了,可以在里边增删进行简单的增删改查。
如何在django中实现文本输入框+下拉选择框的叠加形式首先,在django视图函数中,传递obj_list=[1,2,3]类似这样的一个列表。defshow_data(request):obj_list=[1,2,3]passreturnrender_to_response('index.html',{'obj_list':obj_list})然后在index.html模板文件中
求助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'),]
大功告成!