day62 Django框架--视图系统&路由系统

一,django内置sqlite3数据库的使用

  1.sqlite:是一种文件数据库,使用单独一个文件保存数据

  2.多用于嵌入式,该文件中类似于Mysql也存在很多表

  3.django的settings.py中默认使用的就是sqlite3,不需要再自己配置

  4.pycharm连接sqlite3,需要下载驱动

二,FBV(function base view)和CBV(class base view)

  1.基于函数的视图:FBV

    视图函数中通过request.method的不同进而执行不同的代码

  2.基于类的视图:CBV

    1.视图类必须继承django.view.View

    2.在类中定义和请求方法同名的方法

    3.urls.py中注册视图的时候区别于FBV要写成类名.as_view()

三,request对象的属性和方法

  1.request.method

  2.request.path_info    获取URL路径(不带参数)

  3.request.get_full_path()   获取URL(带参数)

  4.request.GET

  5.request.POST

    1.request.POST.get()

    2.request.POST.getlist()

  6.request.FILES

  7.request.body

  8.request.META

四,上传文件

#1.form表单需要加enctype="multipart/form-data"
#2.request.FILES  大字典
#3.在后端自行写代码保存上传的文件
    filename_obj = request.FILES.get('filename')
    #在当前的项目目录下新建一个和上传文件文件名相同的文件
    with open(filename_obj.name,'wb') as f:
        for i in filename_obj.chunks():
            f.write(i)

五,response

  1.基础必会三件套

    from django.shortcuts import HttpResponse,render,redirect

六,路由系统

  1.正则表达式

    1.Django路由系统匹配URL路径的时候是从上到下按照注册顺序来的

    2.Django的路由系统只匹配URL路径,不匹配域名,端口,URL参数

    3.分组匹配    相当于给视图函数传位置参数

    4.分组命名  相当于给视图函数传关键字参数

    注意:分组匹配和分组命名匹配不能混合使用

  2.给URL匹配模式起名字

    1.name=‘别名’    起别名的目的是为了反向解析URL的时候有依据

  3.通过名字反向解析

    1.在视图函数中:

      from django.urls import reverse

      reverse('别名',)

    2.在模板HTML页面

      {% url '别名' '参数1' ... %}

  4.namespace模式(命名空间)

#所有以app01开头的都交给app01/urls.py去处理
url(r'^app01/',include(app01_urls,namespace='app01')),
#所有以app02开头的都交给app02/urls.py去处理
url(r'^app02/',include(app02_urls,namespace='app02')),

猜你喜欢

转载自www.cnblogs.com/lianyeah/p/9937471.html
今日推荐