Django自学习4
来源:互联网 发布:tensorflow slim 编辑:程序博客网 时间:2024/06/13 01:10
编辑Django应用
- 博客首页 —— 显示最新发表的博客。
- 博客“详细”页面 —— 单篇博客的固定链接页面。
- 基于年份的归档页面 —— 显示某给定年份里所有月份发表过的博客。
- 基于月份的归档页面 —— 显示在给定月份中发表过博客的所有日期。
- 基于日期的归档页面 —— 显示在给定日期中发表过的所有博客名称。
- 评论功能 —— 为一篇给定博客发表评论。
Question首页----显示最新发布的几个Question
Question"详细"页面-- 显示单个Questlion的具体内容
Question"结果"页面---显示Question的投票结果
编辑第一个视图:
打开polls/views.py 文件(这就是视图中的执行代码):
写完执行代码后需要后期的包装配置,以便使其正常运转,在polls文件中新建一个urls.py文件:
应用中的urls.py仅是应用里面的,要想让外面的大框架知道,需要只会大框架,(让大框架中配置,以使其被广大人民知道.):在mysite文件中对urls.py进行配置:
由此,我们可以编辑更多的视图了:
编辑之后还要重新对应用中的urls.py进行配置:
不必对mysites/urls.py进行配置了,因为之前写第一个应用的时候已经对其进行配置了.
现在编写拥有实际功能的视图:
每个视图只负责处理两件事中的一件:返回一个包含所请求的页面内容HttpResponse对象,或者是一个抛出的Http404异常.
为了方便,我们使用之前的学过的数据库API,在polls/views.py更改:
最终显示为:
这里出现一个问题,页面的设计被硬编码到视图中,如果你想更改页面的外观,就得编码这段python代码,因此,我们用Django的模板系统,通过创建一个叫做templates的目录.django将在这里查找模板.
首先,在polls文件中创建templates的目录.Django将在这里查找模板(注意和在mysites中创建的templates文件不同)
项目中的templates设置描述了Django将如何加载并渲染模板.默认的设置文件settings.py配置一个DajngoTemplates后端,其中将APP_DIRS选项设置为True.按照惯例,DjangoTemplates在INSTALLED_APPS所包含的每个应用的目录下查找名为"templates"子目录.这就是我们为什么没有像之前所做的那样修改DIRS,Djagno也能找到模板的原因.
在创建的templates文件中建立polls文件,在创建的polls文件中建立index.html文件.(polls/templates/polls/index.html):
我们更新polls/views.py中的index视图来使用模板:polls/views.py:
浏览器界面为:
这里讲一下快捷方式render():
常见的一个习惯是载入一个模板\填充一个Context然后返回一个含有模板渲染结果的HttpResponse对象.Django为此提供一个快捷方式.下面是一个重写后的index()视图:
一旦我们应用了快捷函数,就不需要再导入loader RequestContext和Httpresponse.render()函数将请求对象设置为第一个参数,模板的名字作为它的第二个参数,一个字典作为它可选的第三个参数.它返回一个HttpResponse对象,含有用给定的Context渲染后的模板.
引发一个404错误:
处理Question详细页面的视图--显示Question内容界面:
显示为:
学习快捷方式:get_object_or_404()
一种常见的习惯是使用get()并在对象不存在时引发404,Django为此提供了一个快捷方式.:
get_object_or_404()函数将一个Django模型作为它的第一个参数,任意数量的关键字参数作为它的第二个参数,它将这些关键字参数传递给模型管理器中的get()函数,如果对象不存在,他就引发http404异常.
使用模板系统:
将polls/detail.html改为:
显示为:
移除模板中的硬编码的URLs:
在polls/index.html中的硬编码指向性链接为:
转换为:
它的工作原理是在polls.urls模块里查找指定的URL的定义.你知道名为"detail"URL的准确定义在:
如果想更改URL名字 则在这里面添加就行了.
带有名空间的URL名字:
如果由多个应用是,Django如何区别URL名字?答案是在主URLconf中添加命名空间.在mysite/urls.py文件中,添加命名空间就行:
这时将polls/index.html中的:
改为:
- Django自学习4
- Django自学习5
- Django自学习8
- Django学习之一(自学习日志)
- Django自学习7 views.py
- 自学习Django中遇到的一些问题
- 自学习算法(JAVA)
- mybatis自学习(一)
- Dango自学习6
- python自学习笔记
- NSDate--自学习笔记
- 图像特征自学习
- mybatis自学习(一)
- 自学习智能搜索引擎算法概述
- 网桥的自学习算法
- 自学习计算机技术以来第一篇文章
- linux编程,看来得自学习了俄
- 探索数据字典,提高自学习Oracle能力
- Spark Streaming 与 Kafka 集成分析
- 给activity标题栏添加图标
- MATLAB中wnoise函数信噪比的问题
- 大数据三重门
- happy 2016, happy 11111100000
- Django自学习4
- 如何让开源项目成为你的良师益友
- java语言jdk下载、安装,环境变量的搭载
- Programming Computer Vision with Python (学习笔记二)
- JDK安装
- 按字典序输出数组的全排列
- Programming Computer Vision with Python (学习笔记三)
- Spark Streaming Crash 如何保证Exactly Once Semantics
- Programming Computer Vision with Python (学习笔记四)