Django 初识 - 视图和url配置

首先,搭载好环境

-) 此处用的是centOS6.4+vim7.2+python2.6+Django1.6
-) 为项目创建一个工作目录,mkdir /test/djcode

Django创建项目

-) 进入之前创建的工作目录下,运行django提供的工具django-admin.py 创建一个项目,django-admin.py startproject mysite; startproject是选项,这个选项将为项目提供一套web解决方案,即一套文件系统.mysite是项目名称;此时,项目已经建立,下面简单了解下项目产生的文件和Django自身的框架文件
-) 项目文件
项目根目录  :mysite 根目录
mysite根目录:manage.py文件、mysite目录
mysite目录  :__init__.py、settings.py、urls.py、wsgi.py

Django 项目文件系统简述

-) manage.py  :一种命令行工具,允许你以多种方式与该Django项目进行交互,在这个目录下生成纯属为了方便
-) __init__.py:定义模块
-) settings.py:项目的配置文件
-) urls.py    :URL映射
-) wsqi.py    :

Django 框架文件系统简述,主目录位于/usr/lib/python2.6/site-packages/django

-) __init__.py	:粘聚同级目录下的所有文件为一个模块包
-) bin/		:django提供的工具
-) contrib/	:功能模块
-) db/		:处理与数据库相关的,ORM
-) forms/	:处理html的表单
-) middleware/	:中间件,处理http的request和response的,类似插件
-) template/	:模板
-) test/	:
-) views/	:最基本的view方法
-) conf/	:配置:1)处理全局配置,比如数据库、加载的应用、MiddleWare等.2)处理URLs配置,就是URL与view的映射关系
-) core/	:核心处理库,包括url分析、处理请求、缓存等
-) dispatch/	:pydispatch库,主要处理 消费者-工作者模式
-) http/	:
-) shortcuts/	:
-) templatetags/:处理application的tag的wrapper
-) utils/	:公共库,很多公用的类都放在这里

Django 服务器的启动

-) python manage.py runserver 8000;键入此命令即启动了Django自带的小型服务器.并启动和检视最后的参数-端口,这个端口可以省略,缺省下是8000,可任意修改,unix可以键入命令ifconfig来查看本机(虚拟机)ip地址

开始第一个项目前预热

-) 一个Hello world网页的结构 



    我的第一个网页


    Hello World

-) 保存为.html类型,并存放在项目目录下,启动服务器,以绝对路径来访问

Django 下Hello world网页的结构

-) 一个Hello world 的视图结构,Django的世界里,每个页面对应一个函数,这个函数叫视图函数;分析请看下面的analysis.

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world")
-) 保存.py类型,起名为views.py,名字随便起,这里为了可读性

-) 视图(函数)与url的映射结构,打开文件urls.py,去掉注释后为;代码如下,分析见analysis

from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
)

-) 建立视图与url的映射,代码如下,分析见analysis

from django.conf.urls import patterns, include, url
from mysite.views import hello
urlpatterns = patterns('',
    ('^hello/$,hello),
)

-) 之前已经python manage.py runserver启动了服务器,现在打开浏览器,键入127.0.0.1:8000/hello/,OK,第一个网页已经建成了

---------------------------------------------------------------
analysis.Django 下Hello world视图函数的分析

-) from ,python的关键字,后接模块名; 完整格式为:from 模块名 import 函数、类、*;这种用法一般是为了导入单个函数或类;其中模块的概念可大可小,小则是一个.py文件,大则为一个目录下的所有.py文件,小则叫模块,大则叫模块包
-) django.http,其中django是一个模块包,http是一个模块
-) import ,关键字,导入的意思,在from后面出现则是要导入函数或类,这里接HttpResponse,表示一个类
-) 定义一个hello视图函数,第一个参数必须是django.http.HttpRequest类的一个实例,这是一个触发这个视图、包含当前web请求信息的对象
-) 返回HttpResponse对象,这个对象包含了文本"Hello world"
analysis.Django下Hello world视图函数的url分析
-) 第一行导入了patterns函数
-) 第二行调用了patterns函数并将返回结果保存到urlpatterns变量,函数当前只有一个参数一个空的字符串.这个字符串可以被用来表示一个视图函数的通用前缀
-) 当前应当注意urlpatterns变量,Django期望能从ROOT_URLCONF模块中找到它.该变量定义了URL以及用于处理这些URL的代码之间的映射关系
analysis.建立视图与url的映射分析
-) 第二行从mysite.views模块导入了hello函数,mysite.views模块等于mysite/views.py文件,这里注意搜索路径问题;
-) 第五行添加了('^hello/$',hello),这是python的元组,第一个元素是模式匹配字符串(正则表达式);第二个元素是那个模式将使用的视图函数;^符号表示匹配的开始,$符号表示匹配的结束,这两个符号都不匹配任何字符,只是声明开始和结束;如果这里不加入正则表达式,则缺省是模糊搜索,任何包含hello/字符的url都将被命中
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
 

你可能感兴趣的:(Django)