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的更多相关文章

  1. The Definitive Guide To Django 2 学习笔记(七) 第四章 模板 (三)使用模板系统

    接下来,我们开始学习如何使用模板系统,但我们并不和前面说的View相结合,我们的这里的目的是展示模板系统是如何独立于Django框架运行的.下面是在pyhon代码中使用Django模板系统的基础例子: ...

  2. The Definitive Guide To Django 2 学习笔记(九) 第五章 模型 (一)数据库访问

    以MySql数据库为例,先到http://dev.mysql.com/downloads/connector/python/处下载MysqlConnector for python的连接器. from ...

  3. The Definitive Guide To Django 2 学习笔记(八) 第四章 模板 (四)基本的模板标签和过滤器

    标签 下面的部分概述了常见的Django标签. if/else {%if%} 标签 对一个变量值进行测试,如果结果为true,系统将会显示在{%if%} 和 {%endif%}之间的一切,看个例子: ...

  4. The Definitive Guide To Django 2 学习笔记(六) 第四章 模板 (二)使用模板系统

    模板系统不是django特有的,它是python的一个库,你可以在任何地方使用它. 使用方法: 1.使用 Template()方法创建Template对象.2.调用Template对象的render( ...

  5. The Definitive Guide To Django 2 学习笔记(五) 第四章 模板 (一)基本模板系统

    引入模板系统的原因,view中引入硬编码并非明智的选择,设计上的任何改变都会需要改动代码.python代码和HTML代码应该分开,这是多数Web站点的共识,分开会提高效率. 基本模板系统 Django ...

  6. The Definitive Guide To Django 2 学习笔记(四) 动态URLs

    前面的例子中,虽然时间是动态可变的,但它的URL却是静态的(/time/).很多时候,URL也是需要动态改变,然后展示出不通的内容来.现在我们就来创建一个可以动态改变URL的例子. 如果URLconf ...

  7. The Definitive Guide To Django 2 学习笔记(二) 第二个View 动态内容

    “Hello World”只是简单的展现了Django 基本的工作机制,但它不是动态的网页.第二个View我们将创建一个动态的网页,该页面上将展现当前的时间和日期. 该View需要做两件事,第一,计算 ...

  8. The Definitive Guide To Django 2 学习笔记(三) URLconfs 和松耦合

    前面的例子体现了一个设计模式中的重要思想,松耦合. 不论我们是将/time/改成/current_time/,还是新建一个/another-time-page/同样指向views.py中的 curre ...

  9. Django初识 学习笔记一

    Django初识 学习笔记一 mvcviewsmodelstemplate. 一 MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(c ...

随机推荐

  1. Git系列六之标签管理

    1.Git标签管理 当版本仓库内的数据有个大的改善或者功能更新,我们经常会打一个类似于软件版本号的标签,这样通过标签就可以将版本库中的某个历史版本给记录下来,方便我们随时将特定历史时期的数据取出来用, ...

  2. 深度增强学习--DQN的变形

    DQN的变形 double DQN prioritised replay dueling DQN

  3. 用好Git 和 SVN,轻松驾驭版本管理

    用好Git 和 SVN,轻松驾驭版本管理 本文从 Git 与 SVN 的对比入手,介绍如何通过 Git-SVN 开始使用 Git,并总结平时工作高频率使用到的 Git 常用命令. 一.Git vs S ...

  4. TestNG 七 annotation

    TestNG中用到的annotation的快速预览及其属性. @BeforeSuite:   被注释的方法将在所有测试运行前运行 @AfterSuite:  被注释的方法将在所有测试运行后运行 @Be ...

  5. 代码可读性艺术在Andorid中的体现

    前言 最近接手的一些项目,不同的人编码风格迥异,类里的变量.方法的定义穿插,注释极为稀少,更有一些变量和方法的命名非常近似,例如表示播放队列的"playQueue"和表示歌单的&q ...

  6. EditText输入为空button不可点击搜索

    一丶任务详情 二丶改动后演示效果 三丶改动过程 分析:非常明显这里是须要监听EditText,推断输入字符串长度是否不为0来改变Button样式 首先的屡清楚代码逻辑在适当的位子加监听推断是最好的处理 ...

  7. 阻塞与非阻塞、同步与异步、I/O模型

    1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端:  同步: 所谓同步,就是在c端 ...

  8. 算法笔记_088:蓝桥杯练习 8-1因式分解(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 设计算法,用户输入合数,程序输出若个素数的乘积.例如,输入6,输出2*3.输入20,输出2*2*5. 样例 与上面的样例输入对应的输出. ...

  9. async -- await 解决数据异步获取

    在React组件中,也比较一下 Promise 和 Async/Await 的方法异同. 传统地使用 Promise : import React, { Component } from 'react ...

  10. Android Exception 7(attempt to re-open an already-closed object )

    07-23 18:16:17.641: W/SQLiteConnectionPool(28390): A SQLiteConnection object for database '/storage/ ...