django

Posted jnhnsnow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django相关的知识,希望对你有一定的参考价值。

MTV
Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:

    1. M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
    2. T 代表模板 (Template):负责如何把页面展示给用户(html)。
    3. 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的主要内容,如果未能解决你的问题,请参考以下文章

DjangoDjango 文件下载最佳实践

DjangoDjango模块创建应用程序

DjangoDjango 如何支持 分组查询统计?

DjangoDjango Debug Toolbar调试工具配置

DjangoDjango中的模糊查询以及Q对象的简单使用

djangodjango-redis的使用方法