django
Posted jnhnsnow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django相关的知识,希望对你有一定的参考价值。
MTV
Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:
- M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
- T 代表模板 (Template):负责如何把页面展示给用户(html)。
- V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:
pip3 install django
django-admin.py startproject mysite
python manage.py startapp xxx
python manage.py runserver (端口号)
静态文件配置:
项目中css/js处理成静态文件
- 项目下创建文件夹 statics
- settings下写 STATICFILES_DIRS = [
os.path.join(BASE_DIR,‘statics)
]
都用static_url ==> static (别名)
简单路由配置:
re_path:
- ^ xxx $ : 以...开头 以...结尾
- re_path(‘^year/([0-9]4)/$‘,views.year) :以...开头 0-9 匹配四次 以...结尾 一个括号代表一个组===》
views下
def year(request,year):
print(year)
return HttpResponse("ok")
有分组就多一个位置参数
- 有名分组(给每个组起名字 ?P<组名>:
re_path(r‘^articles/(?P<year>[0-9]4)/(?P<month>[0-9]2)/(?P<day>[0-9]2)/$‘, views.article_detail),
def article_detail(year,month,day):
xxxxx
分发:
from django.urls import,include
全局:
-re_path("^app1/",include(‘app1.url‘))
项目:
- 以app1开头 匹配到app1下url.py文件
反向解析:
- 模板中反向解析
- views中反向解析
from django.urls import reverse
注意 有正则分组需要传参
url = reverse(‘xxx‘,args=(‘xxx‘,))
以上是关于django的主要内容,如果未能解决你的问题,请参考以下文章