首页 > 代码库 > 【Python之路】第二十二篇--Django【基础篇】

【Python之路】第二十二篇--Django【基础篇】

1 Django流程介绍

MTV模式      

        著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。

        模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。

        技术分享

       Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

       Model(模型):负责业务对象与数据库的对象(ORM)

       Template(模版):负责如何把页面展示给用户

       View(视图):负责业务逻辑,并在适当的时候调用Model和Template

       此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

技术分享

2 Django URL

URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。URL的加载是从配置文件中开始。

urlpatterns = [    url(正则表达式, view函数,参数,别名),]urlpatterns = [    url(r^admin/, admin.site.urls),    url(r^index/, views.index , {"abc":123} , FFF),]

参数说明:

  • 一个正则表达式字符串

  • 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串

  • 可选的要传递给视图函数的默认参数(字典形式)

  • 一个可选的name参数

技术分享
from django.conf.urls import urlfrom app01 import viewsurlpatterns = [    url(r^index/, views.index),    url(r^articles/([0-9]{4})/$, views.year_archive),    url(r^articles/([0-9]{4})/([0-9]{2})/$, views.month_archive),    url(r^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$, views.article_detail),]
demo

带分组的正则:

urlpatterns = [    url(r^index/, views.index),    url(r^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$, views.month_archive),]def index(request,abc):    return HttpResponse(index !)def month_archive(request,year,month):    return HttpResponse(month_archive !)

传值给 month_archive 函数的year,month参数为string类型,尽管他匹配的是int类型

 

【Python之路】第二十二篇--Django【基础篇】