django01

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的响应模式如下所示:

    django01_第1张图片

 

 


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)
]

    django01_第2张图片

 

 

     都用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[0-9]{4})/(?P[0-9]{2})/(?P[0-9]{2})/$', views.article_detail),

       def  article_detail(request,year,month,day):

          xxxxx


 

分发:

  from django.urls import,include

  全局:

    -re_path("^app1/",include('app1.url'))
 项目:
- 以app1开头 匹配到app1下url.py文件


反向解析:
  - 模板中反向解析
  django01_第3张图片

 

 
 

   django01_第4张图片

 

   - views中反向解析

    from django.urls import reverse

     

    django01_第5张图片

    注意 有正则分组需要传参

    url = reverse('xxx',args=('xxx',)) 


名称空间:

  django01_第6张图片

 

 django01_第7张图片

 

 django01_第8张图片

 

 

 


 

url path方法:

  re_path分组正则匹配成功的值是str类型 

   

path("a//",views.article_year)



def article_year(request,year):
    print(year)

    return HttpResponse('ok')

str:除了/之外的非空

int:正整数 包括0

slug:字母 数字 横杠 下划线

uuid: 格式化的uuid

path:任何非空字符串 包括路径分割符

path自定义转换器:

  -应用下建py文件

  - 写类  class Mon_convert:

      regx = "[0-9]{2}"   #必须是regx

      def to_python(self,value):

        return int(value) #可以做任何操作

      def to_url(self,value): #反向解析

         return '%04d'%value

  -url下 导入类

  - from django.urls import register_converter

  - register_converter(类,别名)#用于注册 转换器

  - path(xxx/<别名:xxx>,views.xxx)


request常用方法: 

  request.path:请求路径

       request.get_full_path():包含参数部分

  url: 协议://IP:端口号/路径?参数

  /表示根路径

  request.session/COOKIES

  request.FILES:

  

 

  request.is_ajax()


 

你可能感兴趣的:(django01)