django重點url,視圖函數,模板語言url 1.django重點url無命名分組:re_path() 2.url第一個參:url未命別名分組就不須要views中參數必定,若命別名(?P<year>[0-9]{4})/(?P<month>[0-9]{2})則必須以以 名命爲參數傳值,不然獲取不到值。 3.url第三個參數:url裏面傳入參數,views函數裏面一樣要有參數,若出現參數別名和url參數重名,後面的會把前面的覆蓋掉 4.url第四個參數:url中name屬性給路徑起一個別名對form表單中的action=""可以使用次別名引用路徑引用時要用模板語言或 直接用別名代替原路徑名 5.url映射:使用 include方法:path('myset/', include('myset.urls')), 6.視圖函數: render(,'')對html頁面中的模板語言進行解析渲染 在django.shortcuts中導入(可是此方法有坑,慎用) render_to_response("")直接引進,和上面效果相同,注:要引入render_to_response方法 7.locals()方法(本地變量,還有其它變量):模板語言直接引用後端參數視圖函數 8.redirect()重定向模板語言 html+邏輯控制語句 9.Templete(模板): 10.context(上下文):進入django命令行:python manage.py shell 11.萬能的句點號:可直接引用字典鍵值和列表值,還能夠引用屬性 12.{% if %} 13.{% for i in obj %} s2=[1,2,3] {% for foo in list %} <p>{{ forloop.counter }}:{{ foo }}</p> <p>{{ forloop.counter0 }}:{{ foo }}</p> #從零開始計數 <p>{{ forloop.revcounter }}:{{ foo }}</p> #倒敘計數 {% endfor %} 14.過濾器filter: upper方法:使用管道符|upper內置函數把小寫字母改成大寫字母 loower方法:小寫 add方法:使用管道符|add:參數,進行加法計算 cut方法:使用管道符|cut' ' 切掉引號裏面的 date方法:時間排布 注:傳參是鏈接就要進行安全設置因此相似於超級連接這種直接用模板語言是不可行的 超級連接安全設置: {% autoescape off %} {{ obj }} {% endautoescape %} safe標籤:同上面的方法{% obj|safe %} filesize標籤:數據的大小或佔有量 經常使用過濾器: add:給變量加上相應的值 addslashes:給變量中的引號前加上斜線 capfirst:首字母大寫 cut:從字符串中移除指定的字符 date:格式化日期字符串 default:若是值是False就替換成設置的默認值,不然就使用原本的值 default_if_name:若是值是None,就替換成設置的默認值,不然就使用原本的值 15.防止跨站請求攻擊:當使用http請求返回頁面的時候會出現403報錯,沒法進行頁面渲染 因此要使用{% csrf_token %}模板語句 16.load標籤:{% load %} 加載標籤庫 17.with標籤:{% with %} 用更簡單的變量名代替複雜的變量名 18.verbatim標籤:{% verbatim %} 禁止render 19.自建模板標籤方法:視頻53-04,必需要會 注:@register.simple_tag裝飾器在html中調用時使用{%%},而且能夠傳多個參數,可是不能夠放在if語句下面做爲條件 @register.filter裝飾器在html中調用時使用{{}},可是最多能夠傳入兩個參數,但能夠放在if下面做爲條件 settings:Installapps(app) 文件夾名字:templatetags .html 文件 最上面:{% load tags %} 大括號和小括號的區別: 20.模板繼承:避免頁面重複代碼太多 注:block的名字不能重複 模板: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .page-header{ height: 50px; background-color: rebeccapurple; } .page-body .menu{ height: 400px; background-color: antiquewhite; float: left; width: 20%; } .page-body .content{ height: 400px; background-color: cornflowerblue; float: left; width: 80%; } .page-footer{ height: 30px; background-color: darkcyan; clear: both; } </style> </head> <body> <div> <div class="page-header"></div> <div class="page-body"><a href=""></a> <div> <div class="menu"> <a href="/ordered/">訂單</a> <br> <a href="/shoppingcar/">購物車</a> </div> {% block content %} {% endblock %} </div> </div> <div class="page-footer"><a href=""></a></div> </div> </body> </html> 繼承:(1) {% extends "base.html" %} {% block content %} <div class="content"> 訂單 </div> {% endblock %} 繼承:(2) {% extends "base.html" %} {% block content %} <div class="content"> 購物車 </div> {% endblock %} 21.訪問父模板中的塊的內容,使用{{block.super}}這個標籤 模板: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .page-header{ height: 50px; background-color: rebeccapurple; } .page-body .menu{ height: 400px; background-color: antiquewhite; float: left; width: 20%; } .page-body .content{ height: 400px; background-color: cornflowerblue; float: left; width: 80%; } .page-footer{ height: 30px; background-color: darkcyan; clear: both; } </style> </head> <body> <div> <div class="page-header"></div> <div class="page-body"><a href=""></a> <div> <div class="menu"> <a href="/ordered/">訂單</a> <br> <a href="/shoppingcar/">購物車</a> </div> <div class="content"> {% block content %} wwwwyyyy {% endblock %} </div> </div> </div> <div class="page-footer"><a href=""></a></div> </div> </body> </html> 繼承: {% extends "base.html" %} {% block content %} {{ block.super }} <div> 訂單 </div> {% endblock %}