zoukankan      html  css  js  c++  java
  • Django Url路由及模板渲染方式

    path 基本规则

    • 使用尖括号(<>)从url中捕获值。
    • 包含一个转化器类型(converter type)
    • 没有转化器,将匹配任何字符串,当然也包括了 / 字符
    • path('test/<xx>/<yy>&zz',views.test)
    • 参数名要和视图中的参数一致


    默认支持的转换器

    • str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
    • int,匹配正整数,包含0
    • slug,匹配字母、数字以及横杠、下划线组成的字符串
    • uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00
    • path,匹配任何非空字符串,包含了路径分隔符


    re_path正则匹配

    • 导入:from django.urls import re_path
    • re_path('^hello/(?P<yy>[0-9]+)/',views.test6)


    include的作用

    • 一个project有一个总的urls.py
    • 各个app也可以自己建立自己的urls.py
    • 用include()函数在project的urls.py文件进行注册
    • path('blog/',include('blog.urls'))


    kwargs的作用

    • 传递一个Python 字典作为额外的参数传递给视图函数
    • Kwargs为字典类型
      • 可以传递额外的参数到views中,views中使用**kwargs接收
      • 使用include的时候
      • 需要统一给下面的url一些参数的时候、显得尤其有用
    • path('blog/',include('blog.urls'),{'name':'JiYu','age':1})


    name的作用

    • 给url取个名字path('article_new/',views.article_new,name='articleNew')
    • redirect是重定向,reverse是将url的name解析成url本身的函数
      • 直接重定向:return redirect('/books/article_new')
      • 使用name:return redirect(reverse('articleNew'))


    模板渲染

    • 模板放在哪
      • 在主目录下创建一个templates目录用来存放所有的html的模板文件
      • templates目录里面再新建各个以app名字命名的目录来存放各个app中模板文件
    • setting.py中的模板路径配置
      • 将设置好的存放html模板的templates目录路径添加到TEMPLATES 的DIRS中
      • 'DIRS': [os.path.join(BASE_DIR,'templates')],
    • 三种渲染方式
      • 1.直接将html字符串硬编码HttpResponse中
        • return HttpResponse('<h1>hello Django</h1>')
      • 2.django.template.loader 定义了函数以加载模板
        • 导入包:from django.template.loader import get_template
        • s=get_template('books/book_index.html') #获取模板
        • html=s.render({'name':'JiYu'}) #渲染页面
        • return HttpResponse(html)
      • 3.使用render进行渲染
      • return render(request,'book/book_index.html',context={'name':'JiYu','area':'blog'})
    • 模板路径配置总结
      • 在配置文件setting.py中找到TEMPLATES设置来配置
      • 这是一个设置选项的列表,模板大都包含两项通用设置;两种方式配置模板
        • 第一种: DIRS 定义一个目录列表,模板引擎按列表顺序搜索这些目录以查找模板源文件。将templates放在主项目目录下
        • 第二种: APP_DIRS告诉模板引擎是否应该进入每个已安装的应用中查找模板,值为True则模板会去安装了的app下面的templates文件夹查找模板。
        • 所以我们也可以在每个app的里面创建模板目录templates存放模板,这种方式需要将这个app添加到setting.py文件的INSTALLED_APPS列表中.




    路漫漫其修远兮,吾将上下而求索
  • 相关阅读:
    nginx超时重发
    excel另存为csv
    数据清洗——python定位csv中的特定字符位置
    pandas.read_csv参数整理
    Python 如何在csv中定位非数字和字母的符号
    ORACLE SEQUENCE用法(转)
    Python安装distribute包
    ex41习题 41: 来自 Percal 25 号行星的哥顿人(Gothons)
    利用python去除红章
    UNDO表空间
  • 原文地址:https://www.cnblogs.com/jiyu-hlzy/p/15009518.html
Copyright © 2011-2022 走看看