简介:本文的首席执行官注释将介绍Django视图如何获得Django View提交的内容的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
如果我不了解错误,这是非常基本的。它可以在Python教程中提供。因此,我认为您不应该熟悉Django。在其官方网站上查看教程。看完之后。
简而言之,Django可以通过设置模型以获取数据库数据来轻松获取数据库的数据。也可以通过class.objects.s.all的方法获得。您也可以使用get and Filter。获取数据后,它存在于模型中的对象中。然后将此变量传递给模板。该变量在模板中显示在HTML中。
HTML通过HTTPresponse之类的对象返回到浏览器。
还有一种稍微简洁的方法,但是原理是相同的。其中有一个形式对象,可以简化模板的使用并使变速箱变量更容易,但是进行模型更为复杂。
来自django.views.decocotors.csrf导入csrf_exempt
在您的功能前添加CSRF_EXEMPT装饰器
例如:
@csrf_exempt
def get_a(请求):
此外,在模板中,将{%csrf_token%}添加到表单标签
例如:
表单Action = ...方法=“ post” ...
{%csrf_token%}
输入类型=“ text” name =“ a”测试/输入
让我们的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'),]],]]
更大的功绩!
最简单的方法是为数据库表创建模型。类似的特定方法。
1.设置settings.py的数据库连接方法。
2.在模型中设置数据库表的相应数据结构,该数据库表通常称为关系对象模型,因此称为模型,这是类。您可以使用django-addmin.py ... proce。似乎是这个命令。这是一个数据库检测命令,可以根据表自动生成模型代码。当然,如果您首先编写模型代码,则可以使用SynCDB命令来生成数据库表
3.在urls.py中设置URL路径。当浏览器访问此路径时,您可以在相应的视图中打开函数
4.看
4.1结果= modelclass.objects.all()此命令可以取出所有记录
4.2然后,您可以将结果直接传递到模板。模板示例。这是最合理的方法
4.3在模板中{for Result%的颜色%}
4.4 licols.field1/li
就是这样。可能太厚了。您可以看到教程。
仔细查看Django官方网站的URL配置。您是否配置了表单动作的URL?
顺便说一句,为什么您必须通过Get提交内容,这一点都不安全。几乎没有人真正开发这样的人,尤其是此私人信息。但是也有一些技巧来获得它。您添加一个onclight ='tijiao()
JS添加方法
功能tijiao(){
window.href ='url?'+encodeuricomponent
}
如果您不想跳上页面,请使用Ajax,并且应加密参数
Encodeuricomponent加密敏感信息。您可以在URL路径页面上的DecoDeuricomponent解码上解码。
希望收养
结论:以上是首席CTO注释给您介绍Django观点的全部内容。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住要收集对该网站的关注。