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

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

视图可以从数据库读取记录,也可以不读取。它可以使用模板系统:Django或第三方Python模板系统 或不。...模板命名空间: 如果我们把模板直接放在polls/templates不是创建另一个polls子目录),但它实际上是一个坏主意。...Django将选择它找到名字匹配第一个模板,如果你在不同应用程序中有一个相同名称模板Django将无法区分它们。...为什么我们要使用一个辅助函数get_object_or_404()不是在更高层自动捕获ObjectDoesNotExist异常,或者让模型API 引发 Http404 不是ObjectDoesNotExist...移除模板编码URLs 我们在polls/index.html模板编写一个指向Question链接时,链接中一部分是编码: <a href="/polls/{{ question.id

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

    Django 视图URLconf3.1

    URLconf 在settings.py文件通过ROOT_URLCONF指定根级url配置 urlpatterns是一个url()实例列表 一个url()对象包括: 正则表达式 视图函数...名称name 编写URLconf注意: 若要从url捕获一个值,需要在它周围设置一对圆括号 不需要添加一个前导反斜杠,应该写作'test/',不应该写作'/test/' 每个正则表达式前面的...中使用include() from django.conf.urls import include, url urlpatterns = [ url(r'^', include('booktest.urls...通过namespace定义命名空间,用于反解析 URL反向解析 如果在视图、模板中使用编码链接,在urlconf发生改变时,维护是一件非常麻烦事情 解决:在做链接时,通过指向urlconf名称...,动态生成链接地址 视图:使用django.core.urlresolvers.reverse()函数 模板:使用url模板标签

    46330

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

    模板命名空间 虽然我们现在可以将模板文件直接放在 polls/templates 文件夹不是再建立一个 polls 子文件夹),但是这样做不太好。...去除模板编码 URL 还记得吗,我们在polls/index.html里编写投票链接时,链接是编码 {{ question.question_text...}} 问题在于,编码和强耦合链接,对于一个包含很多应用项目来说,修改起来是十分困难。...我们在polls.urlsurl()函数通过name参数为URL定义了名字,你可以使用 {% url %} 标签代替编码URL: <a href="{% url 'detail' question.id...为 URL <em>名称</em><em>添加</em>命名空间 教程项目只有一个应用:polls 。在一个真实<em>的</em> <em>Django</em> 项目中,可能会有五个,十个,甚至更多应用。<em>Django</em> 如何分辨重名<em>的</em> URL 呢?

    23820

    二、路由、模板

    一、路由系统 在settings.py文件通过ROOT_URLCONF指定根级url配置 urlpatterns是一个url()实例列表 一个url()对象包括: 正则表达式 视图函数 名称name...编写URLconf注意: 若要从url捕获一个值,需要在它周围设置一对圆括号 不需要添加一个前导反斜杠,应该写作'test/',不应该写作'/test/' 每个正则表达式前面的r表示字符串不转义.../(\d*)', views.index, name='h2'),  设置名称之后,可以在不同地方调用 URL反向解析 如果在视图、模板中使用编码链接,在urlconf发生改变时,维护是一件非常麻烦事情...解决:在做链接时,通过指向urlconf名称,动态生成链接地址视图:使用from django.urls import reverse函数 模板中使用生成URL     {% url 'h2' 2012...路由系统和其他语言框架有所不同,在django每一个请求url都要有一条路由映射,这样才能将请求交给对一个view函数去处理。

    1.8K80

    Django 之路由篇

    处理 如果所有应用URL都集中在MyDjango/urls.py ,可能导致文件臃肿 可以把urls具体功能逐渐分散到每个appdjango.conf.urls 导入 include 注意此时...RE部分写法 添加include导入 使用方法 确保include被导入 写主路由开头url 写子路由 编写views 视图 同样可以使用参数URL嵌套参数 捕获某个参数一部分 例如URL /...include语句,此时对include内所有都添加 URL 反向解析 防止编码 本质上是对每一个URL进行命名 以后再编码代码中使用URL值,原则上都应该使用反向解析 源代码 urls.pyfrom...('blog.urls')), url(r'^admin/', include(admin.site.urls)), # 视图函数名称只有名称,无括号和参数 url(r'normalmap...('blog.urls')), # 视图函数名称只有名称,无括号和参数 url(r'ruochen/', views.do_app), ] views.py from django.shortcuts

    73487

    Django 视图和模板1.4

    视图 在django,视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求信息 视图就是一个Python函数,被定义在views.py #coding:utf-8 from...,使主urlconf连接到booktest.urls模块 url(r'^', include('booktest.urls')), 在booktesturls.py添加urlconf from django.conf.urls...context = RequestContext(reqeust, {'book': book}) return HttpResponse(template.render(context)) 去除模板编码...在index.html模板,超链接是编码,此时请求地址为“127.0.0.1/1/” 看如下情况:将urlconf详细页改为如下,链接就找不到了...url(r'^book/([0-9]+)/$', views.detail), 此时请求地址应该为“127.0.0.1/book/1/” 问题总结:如果在模板地址编码,将来urlconf修改后,

    58430

    django之urls系统

    若要从URL捕获一个值,只需要在它周围放置一对圆括号(分组匹配)。 不需要添加一个前导反斜杠,因为每个URL 都有。例如,应该是^articles 不是 ^/articles。...人们强烈希望不要编码这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关专门URL 生成机制,因为这样容易导致一定程度上产生过期URL。...如果你URL 模式叫做comment,另外一个应用也有一个同样名称,当你在模板中使用这个名称时候不能保证将插入哪个URL。 在URL 名称中加上一个前缀,比如应用名称,将减少冲突可能。...我们建议使用myapp-comment 不是comment。 命名空间模式 即使不同APP使用相同URL名称,URL命名空间模式也可以让你唯一反转命名URL。...语法: '命名空间名称:URL名称' 模板中使用: {% url 'app01:detail' pk=12 pp=99 %} views函数中使用 v = reverse('app01:detail

    1.3K70

    Django来敲门~第一部分【6.2 HTML视图模板

    HTML页面渲染 在之前章节,我们使用视图,都是临时在函数HttpResponse添加字符串,这样数据明显不符合我们网页需要,一个网页那么多文字、图片、视频音频等等数据,如果按照字符串方式来处理的话明显不是很现实...HTML页面 1.1 渲染HTML网页 在polls/应用目录下,创建一个名称为templates/文件夹,在文件夹,创建一个名称为index.html网页,添加如下内容 <!...Django为了方便我们进行HTML网页视图模板处理,提供了一个快捷进行网页模板渲染方式:render() 上干货:修改上面的index函数视图处理代码: from django.shortcuts...处理异常 页面出现异常情况,我们有一些特殊状态处理方式,如常规情况下在HTTP协议中有一些特殊状态编码404表示访问资源不存在,500表示服务器内部错误等等,在Django,我们也可以这么干...url进行路由指定即可,避免了编码造成问题 注意,这里url编码配置,和urls.py文件配置必须对应

    99520

    02.Django基础二之URL路由系统

    人们强烈希望不要编码(其实就是在标签里面写死了路径,凡是写死了代码就是编码)这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关专门URL 生成机制,因为这样容易导致一定程度上产生过期...% url 'home' %} #模板渲染时候,被django解析成了这个名字对应那个url,这个过程叫做反向解析 在views函数可以这样引用:(后面再讲这个视图函数应用反向解析内容,上面的是模板应用反向解析过程...如果你URL 模式叫做comment,另外一个应用也有一个同样名称,当你在模板中使用这个名称时候不能保证将插入哪个URL。   ...在URL 名称中加上一个前缀,比如应用名称,将减少冲突可能。我们建议使用myapp-comment 不是comment。...语法:   '命名空间名称:URL名称'   模板中使用: {% url 'app01:detail' pk=12 pp=99 %}   views函数中使用 v = reverse('app01:

    1.5K20

    Django之路由系统

    P[0-9]{2})/$', views.article_detail), ] 这个实现与前面的示例完全相同,只有一个细微差别:捕获值作为关键字参数不是位置参数传递给视图函数。...人们强烈希望不要编码这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关专门URL 生成机制,因为这样容易导致一定程度上产生过期URL。...如果你URL 模式叫做comment,另外一个应用也有一个同样名称,当你在模板中使用这个名称时候不能保证将插入哪个URL。   ...在URL 名称中加上一个前缀,比如应用名称,将减少冲突可能。我们建议使用myapp-comment 不是comment。...语法: '命名空间名称:URL名称' 模板中使用: {% url 'app01:detail' pk=12 pp=99 %} views函数中使用 v = reverse('app01:detail

    1.2K70

    Django视图、传参和forms验证操作

    ,我们把它称为路由,它里面的每一个url()我们称为路由配置 • 一个url()对象包括:正则表达式、视图函数、可选参数、名称name • 请求url被看做是一个普通python字符串,进行匹配时不包括...URL反向解析(软连接) 如果在视图、模板中使用编码链接,在urlconf发生改变时维护是一件非常麻烦事情 解决:在做链接时,通过指向urlconf名称,也就是我们配置namespace...()函数模板语言中()[]是非法用就报错 路由配置 include这个方法,会把经过主路由匹配成功后剩下路径,分发给我们app里面的子路由去处理,它并不是严格匹配,正则是没有结束符$,第一个参数代表分发给哪个路由配置文件去处理...视图函数如下 ? 命名正则表达式组传参(关键字传参):视图函数参数可以是乱序 url(r’/(?P<year \d+)/(?P<mouth \d+)/(?p<day \d+)/$’) ?...后面参数格式是键值对,key1=value1。多个参数之间,使用&连接。

    1.6K30

    Django路由控制URL详解

    ,需要使用尖括号,不是之前圆括号; 可以转换捕获到值为指定类型,比如例子int。...人们强烈希望不要编码这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关专门URL 生成机制,因为这样容易导致一定程度上产生过期URL。...在需要URL 地方,对于不同层级,Django 提供不同工具用于URL 反查: 在模板:使用url 模板标签。...如果你URL 模式叫做comment,另外一个应用也有一个同样名称,当你在模板中使用这个名称时候不能保证将插入哪个URL。在URL 名称中加上一个前缀,比如应用名称,将减少冲突可能。...我们建议使用myapp-comment 不是comment。 3.6 名称空间 命名空间(英语:Namespace)是表示标识符可见范围。

    1.1K20

    Django url 反向解析 和 命令空间

    在正则表达式不需要添加一个前导反斜杠,因为每个URL默认都带有该符号。例如,应该写成^articles 不是 ^/articles。 每个正则表达式前面的'r' 是可选,但是建议加上。...处理冲突 URL 模式捕获命名关键字参数和在字典传递额外参数有可能具有相同名称。当这种情况发生时,将使用字典参数不是URL 捕获参数。...人们强烈希望不要编码这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关专门URL 生成机制,因为这样容易导致一定程度上产生过期URL。...如果你URL 模式叫做comment,另外一个应用也有一个同样名称,当你在模板中使用这个名称时候不能保证将插入哪个URL。 在URL 名称中加上一个前缀,比如应用名称,将减少冲突可能。...' 将是实例命名空间'author-polls' 将是应用命名空间,不是反过来

    2.4K30

    django 1.8 官方文档翻译: 3-1-1 URL调度器

    不需要添加一个前导反斜杠,因为每个URL 都有。例如,应该是^articles 不是 ^/articles。 每个正则表达式前面的’r’ 是可选但是建议加上。...处理冲突 URL 模式捕获命名关键字参数和在字典传递额外参数有可能具有相同名称。当这种情况发生时,将使用字典参数不是URL 捕获参数。...人们强烈希望不要编码这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关专门URL 生成机制,因为这样容易导致一定程度上产生过期URL。...如果你URL 模式叫做comment,另外一个应用也有一个同样名称,当你在模板中使用这个名称时候不能保证将插入哪个URL。 在URL 名称中加上一个前缀,比如应用名称,将减少冲突可能。...其次,你可以include 一个包含嵌套命名空间数据对象。如果你include() 一个url() 实例列表,那么该对象包含URL 将添加到全局命名空间。

    1.3K20

    Django基础教程

    3 不需要添加一个前导反斜杠,因为每个URL 都有。例如,应该是^articles 不是 ^/articles。 4 每个正则表达式前面的'r' 是可选但是建议加上。..."%now return HttpResponse(html) 尽管这种技术便于解释视图是如何工作,但直接将HTML编码到你视图里却并不是一个好主意。...你可以对那些不同 代码段进行定义,不是 共同 代码段。 第一步是定义 基础模板,该框架之后将由子模板所继承。 以下是我们目前所讲述范例基础模板: <!...这个方法可最大限度地重用代码,并使得向公共区域(区域级导航)添加内容成为一件轻松工作。...如果只想在上级代码块基础上添加内容,不是全部重载,该变量就显得非常有用了。 不允许在同一个模板定义多个同名 {% block %} 。

    7.4K20

    Django 3.1 官网学习路线

    Django 编写每个应用程序都由一个遵循特定约定 Python 包组成。Django 附带一个工具,它可以自动生成应用程序基本目录结构,因此您可以专注于编写代码,不是创建目录。...在 mysite / urls.py ,为 django.urls.include 添加一个导入,并在 urlpatterns 列表插入一个 include(),这样您就可以: from django.contrib...如前所述,默认应用程序是为常见情况包含,但不是每个人都需要它们。如果您不需要它们任何一个或全部,那么可以在运行 migrate 之前随意地注释或删除 INSTALLED_APPS 适当行。...(detail, results, vote)保持不变 但这里有一个问题:页面的设计是在视图中编码。...render()函数将请求对象作为第一个参数,将模板名称作为第二个参数,将字典作为可选第三个参数。它返回使用给定上下文呈现给定模板 HttpResponse 对象。

    8.2K10

    Django 教程 --- Django 基础

    Django是一个基于pythonweb框架,它允许您快速地创建web应用程序,不需要像其他框架那样遇到安装或依赖问题。...它由HTML/CSS/Javascript和Jinja文件表示 模板:模板由所需HTML输出静态部分以及描述如何插入动态内容一些特殊语法组成 Django 安装 如果系统没有安装python3(根据系统和操作系统配置...试着下载python最新版本,这次是python3.6.4 注意:Django在Linux和Mac安装是类似的,这里我在windows for Linux和Mac展示它,只是打开终端不是命令提示符...让我们探索一下 移至projectName-> projectName-> urls.py并在标题中添加以下代码 from django.urls import include 现在,在网址格式列表,...Django Apps主要特点是独立性,每个app都作为一个独立单元来支持主项目。要了解更多关于Django应用程序,请访问如何在Django创建应用程序?

    3.6K21
    领券