The Definitive Guide To Django 2 学习笔记(一) Views and UrL confsRL
1.如何找到django在Ubuntu下的安装路径:
进入python命令行,import django,print(django.__path__)
2.使用django-admin.py 创建项目
django-admin.py startproject 'projectname'
3.启动项目服务
进入项目文件目录 python manage.py runserver
4.Hello,World.
在创建的项目文件夹下创建一个新文件,命名为Hello.py,里边编写代码如下:
from django.http import HttpResponse def hello(request):
return HttpResponse("Hello world.")
在URLs.py文件中指向处理/Hello/请求的Pattern
from django.conf.urls import patterns, include, url
#from django.contrib import admin
from Hello.views import hello #admin.autodiscover() urlpatterns = patterns('',
# Examples:
# url(r'^$', 'Hello.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url('^Hello/$',hello),
#url(r'^admin/', include(admin.site.urls)),
)
5. 命令行中启动该项目
python manage.py runserver
在浏览器中输入:http://127.0.0.1:8000/Hello/就可以看到我们的Hello,world项目成功运行了。
Django 是如何处理请求的:
当你在浏览器中看到自己写的“Hello world”,Django处理这一请求的后台机制是什么样的呢?
所以的一切都是从配置文件开始的,当你开始运行python manage.py runserver命令,脚本开始在同一目录下查找settings.py文件,该文件包含了对该项目的所有配置,都是大写字的变量,TEMPLATE_DIRS,DATABASE_NAME等等。最常用的是ROOT_URLCONF. ROOT_URLCONF指定Django的某一个python module作为该网站URLconf.
settings.py 和 urls.py 是django-admin.py startproject命令自动创建的,自动创建的settings.py 包含 ROOT_URLCONF setting 指定 urls.py文件。打开settings.py文件,应该是下面的样子:
ROOT_URLCONF = 'mysite.urls'
当Django接收到/Hello/请求后,开始加载配置文件中ROOT_URLCONF指定的URL文件(mysite/urls.py),当在该文件中找到了与只匹配的第一个URL样式('^Hello$')后,将Request转给Views.py中对应的处理函数。
正如你所见,View中的函数返回了HttpResponse对象,剩下的工作由 Django完成,返回合适的WebRespose.
总结:
1.请求 /Hello/
2.Django通过查找ROOT_URLCONF 检测 根 URLConf
3.Django在URLConf中查找匹配的URL样式
4.如果匹配成功,转给合适的View Function
5.View Function返回HttpResponse
6.Django转化HttpResponse成合适的HTTP RESPONSE,以WEB PAGEde 形式展现。
The Definitive Guide To Django 2 学习笔记(一) Views and UrL confsRL的更多相关文章
- The Definitive Guide To Django 2 学习笔记(七) 第四章 模板 (三)使用模板系统
接下来,我们开始学习如何使用模板系统,但我们并不和前面说的View相结合,我们的这里的目的是展示模板系统是如何独立于Django框架运行的.下面是在pyhon代码中使用Django模板系统的基础例子: ...
- The Definitive Guide To Django 2 学习笔记(九) 第五章 模型 (一)数据库访问
以MySql数据库为例,先到http://dev.mysql.com/downloads/connector/python/处下载MysqlConnector for python的连接器. from ...
- The Definitive Guide To Django 2 学习笔记(八) 第四章 模板 (四)基本的模板标签和过滤器
标签 下面的部分概述了常见的Django标签. if/else {%if%} 标签 对一个变量值进行测试,如果结果为true,系统将会显示在{%if%} 和 {%endif%}之间的一切,看个例子: ...
- The Definitive Guide To Django 2 学习笔记(六) 第四章 模板 (二)使用模板系统
模板系统不是django特有的,它是python的一个库,你可以在任何地方使用它. 使用方法: 1.使用 Template()方法创建Template对象.2.调用Template对象的render( ...
- The Definitive Guide To Django 2 学习笔记(五) 第四章 模板 (一)基本模板系统
引入模板系统的原因,view中引入硬编码并非明智的选择,设计上的任何改变都会需要改动代码.python代码和HTML代码应该分开,这是多数Web站点的共识,分开会提高效率. 基本模板系统 Django ...
- The Definitive Guide To Django 2 学习笔记(四) 动态URLs
前面的例子中,虽然时间是动态可变的,但它的URL却是静态的(/time/).很多时候,URL也是需要动态改变,然后展示出不通的内容来.现在我们就来创建一个可以动态改变URL的例子. 如果URLconf ...
- The Definitive Guide To Django 2 学习笔记(二) 第二个View 动态内容
“Hello World”只是简单的展现了Django 基本的工作机制,但它不是动态的网页.第二个View我们将创建一个动态的网页,该页面上将展现当前的时间和日期. 该View需要做两件事,第一,计算 ...
- The Definitive Guide To Django 2 学习笔记(三) URLconfs 和松耦合
前面的例子体现了一个设计模式中的重要思想,松耦合. 不论我们是将/time/改成/current_time/,还是新建一个/another-time-page/同样指向views.py中的 curre ...
- Django初识 学习笔记一
Django初识 学习笔记一 mvcviewsmodelstemplate. 一 MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(c ...
随机推荐
- XmlRpc with C#/Java【转】
最近看了几个项目都是用xmlrpc协作完成的,就做了几个测试客户端和服务器端和大家一起分享.希望能对入门的同学有帮助 关于xmlrpc的介绍和规范参考http://www.xml-rpc.net/ 下 ...
- TensorFlow------TFRecords的分析与存储实例
TensorFlow------TFRecords的分析与存储实例: import os import tensorflow as tf # 定义cifar的数据等命令行参数 FLAGS = tf.a ...
- git 批量删除文件夹和文件
git 批量删除文件夹和文件 硬盘删除文件后,执行$ git status 会提示你仍然需要$ git rm <文件> 此时如果是要删除大批量文件,这么一个一个命令下去不得累死人啊 ...
- Win7如何更改网络位置,如何加入或创建家庭组
1 打开网络和共享中心,点击连接上网的哪一个网络,点击把公用网络改为家庭网络 2 依次执行下一步 3 如果是加入一个家庭组,则输入家庭组的密码,否则将得到一个家庭组的密码 4 加入成功 ...
- Linux下好用的命令
split -l 10000 articles.json 将文件按行分成多个文件
- CLR_Via_C#学习笔记之事件
一:首先我先引用网上别人对事件的一些说明,然后将会通过一个事例进行对事件的演示: EventArgs是包含事件数据的类的基类,用于传递事件的细节.EventHandler是一个委托声明如下 publi ...
- React.Fragment 包裹标签
在 vue 里,我们会用 <template></template> 标签来包裹一些不能有父容器的复数同级标签. 例如在 <tbody></tbody> ...
- iNode协议再次分析
iNode协议再次分析 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系作者bitpeach删除相应部分 ...
- java Web笔记
Get:标记在地址栏中 放在请求行中显示get?Username=...Password=... Post:使用的是二进制的上传下载 请求行不显示信息 数据传输量大数据隐蔽对文本没有 pst不能再浏览 ...
- oracle update left join查询
对于有的更新语句,要更新的表可能条件不够,需要用到left join关联其他表, 但是不能直接关联,否则报错:错误如下: update imim_gireqbillitems gi left join ...