首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django 1.8 官方文档翻译: 1-2-3 编写你的第一个Django应用,第3部分

以下是当用户访问 “/polls/34/” 路径时系统中将发生的事: Django 将寻找 ‘^polls/’ 的匹配 接着,Django 截取匹配文本 (“polls/”) 后剩余的文本 – “34/...模板命名空间 现在我们 也许 能够直接把我们的模板放在 polls/templates 目录下 ( 而不是另外创建 polls 子目录 ) , 但它实际是一个坏注意。...还有个 get_list_or_404() 函数, get_object_or_404() 一样 – 不过执行的是 filter() 而不是 get() 。...若返回的是空列表将抛出 Http404 异常。 编写一个 404 ( 页面未找到 ) 视图 当你在视图中抛出 Http404 时,Django 将载入一个特定的视图来处理 404 错误。...在 {% for %} 循环中有方法调用: poll.choice_set.all 就是 Python 代码 poll.choice_set.all(),它将返回一组可迭代的 Choice 对象,可以用在

1.8K50

Django 1.10中文文档-第一个应用Part3-视图和模板

Django通过对比请求的URL地址来选择对应的视图。 在你平时的网页,你可能经常会碰到类似“ME2/Sites/dirmod.asp?...由于app_directories模板加载器如上所述工作,因此您可以在Django中简单地引用此模板为polls/index.html(省掉前面的路径)。...模板命名空间: 如果我们把模板直接放在polls/templates中(而不是创建另一个polls子目录),但它实际是一个坏主意。...因为那样做将会使模型层视图层耦合在一起。 Django最重要的一个设计目标就是保持松耦合。 一些可控的耦合将会在django.shortcuts 模块中介绍。...方法调用发生在{% for %}循环中:question.choice_set.all被解释为Python的代码question.choice_set.all(),它返回一个由Choice对象组成的可迭代对象

2.3K60
您找到你想要的搜索结果了吗?
是的
没有找到

Django学习笔记之使用 Django项目开发框架

管理工具是 Django 提供的一个应用程序。 jobs 应用程序一样,在使用之前也必须进行安装。...新增内容是详细视图方法使用了一个 get_object_or_404 方法,通过该方法使用所提供的参数获取一个 Job 对象。如果没有找到这个对象,就会触发 404 异常。...这是前面提到过的 jobs urls.py 文件中 /jobs/ URL 路径后面的数字。它以后会作为主键(pk)传递给 get_object_or_404 方法。...上面的视图仍然会失败,因为它们所加载和呈现的模板(jobs/job_list.html and jobs/job_detail.html)不存在。...页面会显示一条称为 job 的记录: 清单 32. templates/jobs/job_detail.html 页面 {% extends "jobs/base" %} {% block title

3.2K30

Django -- 视图是啥?模板是何物?

views.index, name='index'), path('hello//', views.hello_country, name='hello'), ] str,匹配除了路径分隔符...path,匹配任何非空字符串,包含了路径分隔符 当浏览器输入 http://localhost:8003/demo_app/hello/china 时,我们新配置的路由规则发挥作用,决定过了 demo_app...---- 模板 在视图中你可以操作数据库,可以使用模板引擎(Django自带的,或者第三方的)等,Django 对视图的要求是返回一个 HttpResponse,或者抛出异常。...一般当列表页展示时,我们通常可以通过点击其中的一条记录进入到该记录的详情页(detail)。.../detail.html',{'cat':cat}) get_object_or_404() 返回具体对象或者抛出404异常,类似的也有 get_list_or_404()函数,大家可以直接练习下。

1.1K20

Django】 开发:补充知识

当前 page 对象相关的 Paginator 对象 Page 对象方法 has_next ():如果有下一页返回 True has_previous ():如果有一页返回 True has_other_pages...():如果有一页或下一页返回 True next_page_number ():返回下一页的页码,如果下一页不存在,抛出 InvalidPage 异常 previous_page_number ()...:返回一页的页码,如果一页不存在,抛出 InvalidPage 异常 len ():返回当前页面对象的个数 说明: Page 对象是可迭代对象,可以用 for 语句来 访问当前页面中的每个对象 参考文档...在安装机器安装和配置同版本的环境 django 项目迁移 $ sudo scp 当前项目源代码 远程主机地址和文件夹 sudo scp /home/tarena/django/mysite1 root...( ): raise Http404 # 直接返回404 邮件告警 报错邮件中会显示一些错误的追踪,这些错误追踪中会出现如 password等敏感信息,Django已经将配置文件中的敏感信息

6.4K30

后端框架学习-Django

4.匹配成功-返回响应 5.匹配失败-返回404 视图函数 用于接收浏览器请求并通过HttpResponse对象返回响应的函数。...,包括路径分隔符‘/’ re_path函数: 正则匹配,更加精密的匹配规则 re_path(reg,view,name = xx) 正则表达式为命名分组模式(?...,一定要Try一下 语法:MyModel.objects.get(条件) 作用:返回满足条件的唯一一条数据 说明:该方法只能返回一条数据,直接获得Object 查询结果多于一条则抛出异常...= paginator.page(页码) page对象属性: object_list:当前所有数据对象的列表 number:当前页面的序号,从1开始 paginator:当前page对象相关的Paginator...如果有一页返回True previous_page_number():返回一页的页码,如果一页不存在,抛出InvalidPage异常。

9.3K40

python测试开发django-3.url配置

也就是url路径里面带参数时候如何去处理呢?...path 只能绝对匹配路径地址,不支持正则匹配 re_path 支持正则匹配,django 1.x版本常用 url 支持正则匹配,实际就是return re_path, django2.x版本推荐...def url(regex, view, kwargs=None, name=None): return re_path(regex, view, kwargs, name) 匹配路径统一在后面加个...,前面的部分demo/page=不变,匹配任意数字,可以用正则\d+匹配 url(‘^demo/page=\d+$’, views.demo) 这样在浏览器输入任意page页数都能访问一个固定地址,依然不是我们想要的结果...视图函数里面返回的是一个静态的demo.html模板页面,后面会讲模板参数化配置 404报错页面 如果输入的page不是数字,如:http://127.0.0.1:8000/demo/page=aa

93730

PythonWeb | 搭建单服务实现多域名访问

,会直接跳转到app_1_demo的urls,再根据当前匹配跳转当前的views函数 1)、首先匹配app_1_demo的urls的路由: from django.urls import path...return HttpResponse("hello i'm app_1") 同理,app_2匹配成功之后,会直接跳转到app_2_demo的urls,再根据当前匹配跳转当前的views函数...urlpatterns = [ path("", app_2_view) ] 2)、urls匹配成功之后,跳转这里的视图函数,并返回响应 from django.http.response import....cc两个域名 192.168.2.200 app1.cc 192.168.2.200 app2.cc 2、绑定完之后,然后将本项目放到192.168.2.200机器,测试当前的服务配置没有问题.../404.html; location / { # 通用匹配,任何未匹配到其它location的请求都会匹配到 include uwsgi_params;

1.4K10

WEB框架本质和第一个Django实例

conn.send(response) conn.close() 根据不同的路径返回不同的内容–函数版 上面的代码解决了不同URL路径返回不同内容的需求。...模版用于将内容展现分离。在django中,视图描述了要展现的数据,而视图一般转交给模版。模版描述了数据如何展现。...请求生命周期概念 是指当用户在浏览器输入url到用户看到网页的这个时间段内,Django后台所发生的事情 而Django的生命周期内到底发生了什么呢?? 1....中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配, 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了. 3....会依次遍历路由映射表中的所有记录,一旦路由映射表其中的一条匹配成功了, 就执行视图函数中对应的函数名,这是fbv的执行流程 cbv方式请求的过程 当服务端使用cbv模式的时候,用户发给服务端的请求包含

1.6K40

django URL (路由系统)

,因为它是完全匹配 Page not found (404) 有命令分组(推荐) 上面匹配年份的,可以改写成这样: 如果需要匹配年份,年份是4位数据,需要使用正则匹配,那么需要导入re_path模块...其中converter为路径转换器,name为参数名,如。对于捕获的值没有路径转换器,那么它会匹配除了斜杠"/"外的所有字符作为捕获的值。     3.url不需要以斜杠开头。...默认Path converter Django2.0自带的PathConveter包括:     str:匹配除了路径分隔符(/)之外的非空字符串,如果没有转换器,默认使用str作为转换器。    ...path:匹配任何非空字符串,包含了路径分隔符(/) 注册自定义Path Converter 当默认的Path Converter不能满足需求时,Django2.0支持用户注册自定义的Path Converter...    path('articles//', views.year_archive), ] 访问链接 http://127.0.0.1:8000/articles/2003/ 匹配一条规则

1.6K30

Django框架学习笔记(二)URL路由

;如果不存在,返回404页面。...url结构 3.网站多主机路径的使用 当一个网站比较大的时候,每一个模块就是一个独立的网站,每一个子模块都对应着独立的服务器。...URL路由的工作流程: web服务器根据用户访问的URL在URL列表中进行匹配,如果匹配上了,则区执行相应的Views中方法,如果匹配不上则返回404错误。...三、URL路由基本案例 1.同目录下创建views 如果我们在当前目录下新建一个views.py的文件,定义一个index方法,用来返回字符串。...修改Django默认端口 http服务默认使用80端口,Django为了防止当前主机上可能存在的80端口发生冲突使用了8000端口,如果当前主机上没有80端口占用的话,怎么修改当前项目为8000端口呢

1.3K31

05.Django基础五之django模型层(一)单表操作

若 verify_exists 参数为 True (默认), 给定的 URL 会预先检查是否存在( 即URL是否被有效装入且 没有返回404响应)....(**kwargs): 它包含了所给筛选条件相匹配的对象,结果也是queryset类型 Book.objects.filter(title='linux',price=100) #里面的多个条件用逗号分开...,并且这几个条件必须都成立,是and的关系,or关系的我们后面再学,直接在这里写是搞不定or的 get(**kwargs): 返回所给筛选条件相匹配的对象,不是queryset...Book.objects.get(id=1) exclude(**kwargs): 排除的意思,它包含了所给筛选条件不匹配的对象,没有不等于的操作昂,用这个exclude,返回值是... first(): queryset类型的数据来调用,返回一条记录 Book.objects.all()[0] = Book.objects.all().first

2.9K10

nginx之rewrite模块

相关的指令,立即用替换后的新URI开始下一轮的location匹配 redirect: replacement 如果不包含协议,仍然是一个新的的URI,那么就用新的URI匹配的location去处理请求...="字符串相比较,即$var = xxx或者$var != xxx,也可以匹配正则表达式。 $var ~ Reg 表示大小写敏感匹配 $var ~* Reg 表示大小写不敏感匹配 $var !...$content_length, HTTP请求信息里的"Content-Length"; $content_type, 请求信息里的"Content-Type"; $document_root, 针对当前请求的根路径设置值...GET"、"POST"等; $remote_addr, 客户端地址; $remote_port, 客户端端口号; $remote_user, 客户端用户名,认证用; $request_filename, 当前请求的文件路径名...; } 通过判断 URI 中是否有 ’、;、>、< 等字符可以快速过滤掉可能发生 SQL 注入的请求,然后直接返回 404 Not Found,可用于防sql注入。

2.7K20

nginx 配置文件的匹配规则

和猜想的一样, 即使匹配规则在前面, 但是仍然匹配到了规则^~. 也就是说规则 ^~ 比规则 ~的匹配优先级更高....这次返回404, 这说明, nginx在执行到第一个匹配的时候, 就停止匹配, 不再进行后续匹配了. 至此, nginx的匹配规则基本已经复现出来了....按照优先级从高到低的顺序进行匹配 相同优先级的, 按照配置文件中的顺序进行匹配匹配一条规则之后, 停止后续匹配....xxx: 路径正则匹配 location ~* xxx: 路径正则匹配, 不区分大小写, 正则匹配的优先级相同 location /xxx : 路径前缀匹配 location / : 通用匹配, 当其他都没有匹配的时候...又因为没有解析操作, 故而 php 文件都当做资源文件返回了. 那么问题来了, 如果我想对admin路径下的路径执行访问限制, 改怎么办呢? 将规则^~改成~ ?

1.7K10

Python web 开发之初识Django

一张包含 URL 匹配模式和 Python 回调函数之间的映射表。URLconf 也有利于将 Python 代码 URL 解耦合(译注:使各个模块分离,独立)。...当一个用户请求页面时,Django 会顺序遍历这些匹配模式,直至模式和请求的 URL 成功匹配。(如果全部模式都无法匹配Django返回一个404视图。)...编写视图 视图函数的执行结果只可能有两种:返回一个包含请求页面内容的 HttpResponse 对象;或者是抛出 Http404 这类异常。至于视图接下来还要做什么则由你决定。...= Author.objects.all() return render(request,"authors.html",{"authors":authors}) 设计模板 Django 允许设置搜索模板路径...以上只是 Django 的功能性概述。Django 还有更多实用的特性: 缓存框架可以 memcached 或其他后端集成。

37910

Django学习(二) 之 模板的使用

()) ] 访问http://127.0.0.1:8000/my_content可以看到效果如下: 6、urls.py配置规则 主要有三个:path、re_path、url: path 只能绝对匹配路径地址...,不支持正则匹配 re_path 支持正则匹配,django 1.x版本常用 url 支持正则匹配,实际就是return re_path, django2.x版本推荐 从path()和re_path(...,匹配任意数字,可以用正则\d+匹配,如下所示: url('^pagehelper=\d+$', views.pagehelper) 模拟场景就是,传入非数字类型参数返回404 Not Found,在...在django_project/urls.py里添加url访问路径,示例代码如下: from django.conf.urls import url from django.urls import...设置文件setting.py里面有个参数 DEBUG = True,将其更改为False,Django将显示标准的404页面。

16410

Django快速入门——投票程序(3)视图

Django找到了匹配的模式polls/,Django会分离匹配的文字polls/并发送剩余的文字34/到polls.urls进一步处理。...question_id 定义了参数名称,而int是一种转换形式,用来确定应该匹配网址路径的什么模式(这里使用int表示整数,另一个常用的是str表示字符串)。冒号 (:) 将两者分隔。...更多关于匹配URL的内容,参考URL调度器:https://docs.djangoproject.com/zh-hans/4.2/topics/http/urls/ 写一个真正有用的视图 视图函数返回值为...Django 将会选择第一个匹配的模板文件,如果你有一个模板文件正好和另一个应用中的某个模板文件重名,Django 没有办法 区分 它们。...在{% for %}循环中发生的函数调用:question.choice_set.all 被解释为 Python 代码 question.choice_set.all() ,将会返回一个可迭代的 Choice

21020

Django 3.1 官网学习路线

在处理请求时,Django 从 urlpatterns 中的第一个模式开始,沿着列表向下移动,将所请求的 URL 每个模式进行比较,直到找到一个匹配的。...对于它应用的每个迁移,您将看到一条消息。...OK migrate 命令获取所有还没有应用的迁移(Django 跟踪哪些迁移是使用数据库中名为 django_migrations 的特殊表应用的),并在数据库运行它们——本质,就是将您对模型所做的更改数据库中的模式同步...字符串的:question_id> 部分定义了将用于标识匹配模式的名称,而 <int:部分是一个转换器,用于确定哪些模式应该匹配 URL 路径的这一部分。...编写实际应用的视图 每个视图负责做两件事中的一件:返回一个包含被请求页面内容的 HttpResponse 对象,或者引发一个异常,比如 Http404。剩下的就看你了。

8.1K10

Django】 Python Web 框架基础

settings.py 文件介绍 https://docs.djangoproject.com/en/2.2/ref/settings/ BASE_DIR 用于绑定当前项目的绝对路径(动态计算出来的...), 所有文件都可以依懒此路径 DEBUG 用于配置Django项目的启动模式, 取值: True 表示开发环境中使用 调试模式(用于开发中) False 表示当前项目运行在生产环境中(不启用调试)...中的 URL, 匹配到第一个合适的中断后续匹配 匹配成功 - 调用对应的视图函数处理请求,返回响应 匹配失败 - 返回404响应 # 主路由-urls.py样例: from django.urls import...=None) 参数: route: 字符串类型,匹配的请求路径 views: 指定路径所对应的视图处理函数的名称 name: 为地址起别名,在模板中地址反向解析时使用 path转换器 思考:建立如上一百个网页该怎么办...detail/this-is-django path 匹配非空字段,包括路径分隔符 '/' "v1/users/"匹配 /v1/goods/a/b/c re_path()函数 在

2.1K20

Python常见面试题【悟空教程】

]),检查string的开头是否patter匹配 re模块中search(pattern,string,[flags]),在string搜索pattern的第一个配置值 7.python2和python3...)浏览器将端口号从URL中解析出来,建立一条web服务器的TCP链接 (3)浏览器向服务器发送一条HTTP请求报文,服务器向浏览器回送一条HTTP响应报文 (4)关闭连接,浏览器显示文档 14.常用的加密算法有对称加密和非对称加密...中的wsgi,再经过django的中间件,最后url到路由映射表,在路由中一条一条进行匹配,一旦其中一条匹配成功就执行相对应的视图函数。...3.视图函数根据客户端的请求查询相应的数据,返回django,然后django把客户端想要的数据作为一个字符串返回给客户端。 4.客户端浏览器收到返回的数据,进过渲染后显示给用户。...,一旦路由映射表其中一条匹配成功,就执行视图函数中对应的函数名。

1.3K20
领券