玩转 Django2.0 笔记1

模板静态

 

 路由

 

urls.py
urlpatterns = [

    path("<year>/<int:month>/<slug:day>",mydate),
    re_path("(?P<year>[0-9]{4}).html",myyear,name='myyear'),

]

views.py

def mydate(request,year,month,day):
    print(year,type(year))
    print(month,type(month))
    print(day,type(day))
    return HttpResponse(str(year) + "/" + str(month) + "/" + str(day))

def myyear(request,year):
    return render(request,"myyear.html")

myyear.html
 <div><a href="/2018.html">2018 old Archive</a></div>
    <!--myyear 为url名 与urls.py 所设置的参数name 一一对应,
    2018 为该url的变量
    -->
    <div><a href="{% url 'myyear' 2018 %}">2018 Archive</a></div>

视图

Django采用MTV的框架模式,即模型(Model)、模板(Template)和视图(Views),三者之间各自负责不同的职责。

  • Model模型,数据存取层,处理与数据相关的所有事务,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
  • Views视图,表现层,处理与表现相关的决定,例如如何在页面或其他类型文档中进行显示。
  • Template模板,业务逻辑层,存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁。

  视图是Django的MTV架构模式的V部分,主要负责处理用户请求和生成相应的响应内容,然后在页面或其他类型文档中显示。也可以理解为视图是MVC架构里面的C部分(控制器),主要处理功能和业务上的逻辑。
  视图函数完成请求处理后,必须通过return方式返回数据内容给用户,常用的返回方式由render()、render to response()和redirect()函数实现。其中,render()和render_to_response()实现的功能是一致的。render_to_response()自2.0版本以来已开始被弃用,并不代表在2.0版本无法使用,只是大部分开发者都使用render()。render()语法如下

render(request,template_name,context =None,content type=None,status=None,using=None)

render()的参数request和template_name是必需参数,其余的参数是可选参数。

各个参数说明如下。

  • request:浏览器向服务器发送的请求对象,包含用户信息、请求内容和请求方式等。
  • template_name:HTML模板文件名,用于生成HTML网页。
  • context:对HTL模板的变量赋值,以字典格式表示,默认情况下是一个空字典。
  • content type:响应数据的数据格式,一般情况下使用默认值即可。
  • status:HTTP状态码,默认为200。
  • using:设置HTML模板转换生成HTML网页的模板引擎。

原文地址:https://www.cnblogs.com/songdanlee/p/11503686.html