今天,我将与您分享Django编写代码的位置。其中,它还将解释Django的发展。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
本文目录清单:
1.找到Django的常见语法,以及如何接受GET和POST参数2. Django模板。如何创建在其中创建HTML的软件输入代码?应用程序和数据库,应该在添加,删除和修改该数据库的代码中编写哪个文件?5.如何使用Django编写代码的重要性1.首先登录CentOS7系统,打开终端,输入Python3虚拟环境,创建项目DJBD,在项目中创建一个应用程序,该命令如下。
2.在项目的设置中。PY文件,添加应用程序信息,然后将此计算机IP添加到washe_host。
3.在引擎的urls.py文件中,包括输入应用程序的urls.py,而vi urls.pyurls.py文件如下。
4.创建urls.py文件CD https://www.shouxicto.com/bookvi urls.py,并按照以下方式编写代码。
5.然后运行Django Project CD ..Python Manage.py Runserver 192.168.128.25:8000。最后一个IP是填写在端口8000上运行的允许host的IP。
6.然后打开邮递员,这可以是LAN中的任何桌子计算机。请求方法是发布。
7.最后,控制台打印了提交的参数,并完成了。
在项目的根目录中创建,建议您使用Eclipse创建Django项目,这很方便!
让我们的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'),]],]]
更大的功绩!
没有固定的要求,您可以自己编写文件统一管理,也可以在多个文件中使用时编写它。
建立数据模型后,Django将为您自动生成一组数据库APIS,允许您创建,检索,更新和删除对象并将它们存储在Models.py中。
有关模型的更多操作,请参考。
Django代码注释
1.扩展并包含在模板标签中是冲突。随着扩展,包含无法生效。原因是基础渲染的独立机制的设计。
2.#编码:UTF-8此句子只能在代码文件的第一行中生效,并且在注释字符串后面可能无效。
3.发布请求休息和Django的本机技术设施层由前端开发简化和交易包装前进。结果是可以将业务层放置在视图中。
4.用户的自我生成的文本内容页面上有一个用户。最好不要将帖子表格放在XSRF上。前者可能会窃取后者的令牌信息。
5.在模板==中,逻辑操作符号的两侧必须有一个空间,否则会影响模板分析
6.以表单的内部逻辑中的clean_data处理中抛出的异常。IS_VALID不会向外传递,但仅会变成form.is_valid()返回false。
7. Django的业务层和视图层如何划分问题,一种简单的方法是将业务层发送到哪个参数级别,我个人认为验证的表单更合适。
8.如果否则:1是直接处理它的两种简化的多级技术:12是中途回报的直接回报。尽管这不符合流程编程功能设计原理,但代码相对简单。
9. Ubuntu的生产环境不能以中文为单数,否则会导致错误。
10.由于Django的500个机制和交易机制,Django视图层与异常处理代码相对较弱。
11.模型表格定义:没有出现在首页上的字段,请确保掉落或null,但null会影响默认值,因此最好的方法是掉落。否则,由于表单中的字段似乎并未覆盖默认值为null。比排除更方便的定义方法是定义字段元信息,因此模型添加了未使用的字段,您无需运行到RE- 填写表单定义
12.数据库 - 内存数据的格式显示在模板中显示带有诸如日期之类的过滤器。如果您直接使用DateTime的横Striftime格式化,它将导致时区数据丢失。时间是值得的。如果您在代码中的Strifttime中处理它,则可以首先使用django.utils.timezone.localtime方法。
13. Django调试中的一个问题:众所周知,RunServer启动,更改代码,服务将重新启动,但是更改自定义标签代码,服务不会重新启动。
14.表单验证的错误中没有文本信息。看文档前一段时间,我发现新版本加强了错误。在较旧版本中,我编写了一个函数来分析错误对象的反馈文本信息。
15.通过Manytomany字段无法添加或删除。为了进行可伸缩性,建议默认情况下添加。您可以将date_added字段添加到中间关系表中。顺便说一句,唯一_together受到限制,但是使用的使用是有缺陷的:WriteThe操作有点麻烦。应首先删除这个Manytomany字段,然后迁移生效,然后添加一个Manytomany字段。当然,背景是在背景中。
Django撰写代码和制定Django的介绍的引入。我想知道您是否找到了所需的信息?如果您想更多地了解此信息,请记住要收集对该网站的关注。