url路由配置及渲染方式

url路由配置及渲染方式

一、路由系统

路由功能:分发请求

url:全球统一资源定位符,俗称网址

http 默认端口:80;https 默认端口:443

路由配置文件为:urls.py文件,又叫url配置模块(urlconf模块)

打开urls.py文件,在urlpatterns=[ ]中写路由配置以元组形式写入列表中,例:path('index/',views.index_view);‘index/’表示这个为自定义路径;views.index_view表示调用views.py文件中的视图函数

注:前面路由会覆盖后面路由

1、path函数的介绍

  path函数可以接收(route,view,kwargs=None,name=None)

  route : 表示是一个字符串url规则;

  view : 表示是一个视图;

  kwargs : 表示额外的参数,是一个字典形式

  name : 表示为url规则取的名字

2、url捕获参数

方法如下:

  2.1 转换器(用冒号连接)

    A、str:匹配除了路径分隔符“/”之外的所有字符串

      例:path('student_detail/<str:pk>/',views.student_detail_view);pk为views.py文件中一个视图函数里的一个参数

    B、int:匹配0或任何正整数

    C、slug:匹配任意的ASCII字符或数字组成的slug字符串,连字符和下划线

    D、path:匹配任何非空字符串,包括路径分隔符“/”

  2.2 使用正则表达式匹配(注:获取的参数都会转换为字符串)

    调用 from django.urls import re_path方法,参数(route,view,kwargs=None,name=None)

    例:re_path(r'students_detail/(?P<pk>\d+)/', view.student_detail)或者

      re_path(r'students/(?P<year>\d{4})-(?P<month>\d{2})-(?P<name>.*?)/',views.students)

3、include用法(根目录urls.py调用app文件夹的urls.py)

  # 在创建好的app文件夹中新建一个urls.py文件,写好路由

  # 然后到根目录中urls.py文件中导入模块(from django.urls import include)

  # 例:path('teacher/',include('teacher.urls');'teacher.urls'表示在teacher文件夹下的urls.py文件

  # include可以是多层,可以在app文件中用include,然后在根目录中include

4、kwargs参数

  kwargs:表示关健字参数传到视图参数里

  例1:path('student_detail/<str:pk>/',views.student_detail,kwargs={'arg1' : 'value1', 'arg2' : 'value2'})

  注:视图参数里必需要定义arg1,arg2参数,不然会报错

  例2:path('student_detail/<str:pk>/',views.student_detail,kwargs={'pk' : 'value1', 'arg2' : 'value2'})

  注:当url参数与关健参数一致时,以关健参数为主

5、name参数

  name:表示为url规则定义名字

  例:在teacher文件夹下的urls.py文件中导入模块from django.shortcuts import redirect,reverse

    写入path('home/',views.index_view,name='index')

    然后在views.py文件中的视图函数中写入home_url = reverse('teacher.index');return redirect(home_url)

   ‘teacher.index’表示调用teacher文件夹里urls.py文件中名字定义为index的url

    注:这种写法可以动态生成

6、重定向(redirect函数)

  重定向:表示跳转到指定页面

  例:在views.py视图函数中写入return redirect('http://www.baidu.com')就可跳转到百度页面

--------------------------------------------------------------------------------------------------------------------------------

二、模板系统

  # 在项目根目录下新建个templates文件夹,再在下面新建一个teacher文件夹,在新建一个html文件存在里面

  # 然后在settings下设置模板路径,在TEMPLATES参数中‘DIRS’:[os.path.join(BASE_DIR,'templates')]

  例:在teacher文件夹下views.py导入模块(from django.template.loader import get_template)

    def index_view(request):

      t = get_template('teacher/index.html')

      html = t.render()

      return HttpResponse(html)

猜你喜欢

转载自www.cnblogs.com/nickshen/p/10570657.html