2019-3-1

偽靜態:

.html? 'url(^page/(?P<id>\d+).html/$',views.page,name='pages')

/page/1|2|3.html/? ? |? ? {% url pages 1|2|3 %}

3.request對象

--method,GET,POST

--FILES,META,body,path,get_full_path(),is_ajax(),COOKIE,session

4.CBV處理請求的另外一種方式

from django.views import View

class Login(View):

  def get(self,request):
    pass

  def post(self,request):

    pass

from app import views

url('^login/$',views.Logn.as_view())

DTL簡介:

全稱:Django模板語言(Django Template Language)

語法:filter{{}} tag{%? %}

簡單變量的使用:

1.視圖函數可以通過兩種方式將變量傳遞給模板界面

  render(request,'test_page.html',

{'變量key1': '變量值1'
, ..., '變量keyn': '變量值n'})

-- render(request, 'test_page.html', locals())
>>> locals() 就是將視圖函數中的所有變量都傳遞給模板頁面

2.模板頁面中對變量的使用

--語法:{{變量}}

--支持('全')類型:數字,字符串,布爾,列表,元組,字典,函數,對象,類??

注:list.index? | dic.key? | obj.property? | obj.fn? 來查看內部成員數據

filter的使用與常見內置filter

語法:

--{{變量|過濾器1[:參數]}}

注:過濾器可以串聯操作,可以擁有0個或一個參數

常見內置filter

增加? add:num

字符串長度? length

默認值 default:'默認值'? #變量不存在或為空

全大寫 upper

全小寫? lower

切片? slice:'0:-1'

將數字轉換為文件大小? ?filesizeformat

字符串隱藏? truncatechars:10? #只顯示10個字符后置字符都用...來替代

事件? date:'Y-m-d''

轉換原意? safe

1.語法:
-- {% 關鍵詞 參數們 %}

2.內置tag
-- 反向解析url {% url 'namespace:url_name' arg1 arg2 %}
-- 當前時間now {% now 'Y-m-d' %}
-- 起別名with {% with '后面的別名flag就代表我' as flag %}
{{ flag }} {% endwith %}
-- Django CSRF認證 {% csrf_token %}

## 條件分支tag

```python
'''
語法:
{% if 條件1 %}
結論1
{% elif 條件2 %}
結論2
{% else %}
結論n
{% endif %}

注:
1. if的條件可以添加filter
2. 可以嵌套

## 迭代器tag

```python
'''
{% for foo in iterate %}
{{ forloop }}
{% empty %}
可迭代對象為空
{% endfor %}

注:
1. iterate為可迭代對象
2. iterate可以添加filter
3. forloop變量為存放迭代信息的字典
4. empty分支會在可迭代對象為空時執行

## 自定義filter與tag

```python
'''
步驟:
1. 在注冊的app下創建templatetags包
2. 在模板中自定義模塊py文件,如:owen_tags.py
3. 要在使用自定義filter與tag的模板頁面中加載自定義模塊py文件
,案例:{% load owen_tags %}

4. 自定義filter語法
from django.template import Library
register = Library()
@register.filter(name='jump')
def owen_jump(value, arg):
try:
return value * int(arg)
except (ValueError, TypeError):
return ''

5. 自定義tag語法
@register.simple_tag(name='add_two')
def owen_add(arg1, arg2):
try:
return int(arg1) + int(arg2)
except (ValueError, TypeError):
try:
return arg1 + arg2
except Exception:
return ''

6. 在加載了自定義模塊py文件的模板頁面中使用,案例:
{{ 10|jump:2}} # 10 * 2
{% add_two 10 20 %} # 10 + 20
'''

## 全系統過濾器(了解)

```python
{{ 123|add:"5" }} 給value加上一個數值
{{ "AB'CD"|addslashes }} 單引號加上轉義號,
一般用于輸出到javascript中
{{ "abcd"|capfirst }} 第一個字母大寫
{{ "abcd"|center:"50" }} 輸出指定長度的字符串,并把值對中
{{ "123spam456spam789"|cut:"spam" }} 查找刪除指定字符串
{{ value|date:"F j, Y" }} 格式化日期
{{ value|default:"(N/A)" }} 值不存在,使用指定值
{{ value|default_if_none:"(N/A)" }} 值是None,使用指定值
{{ 列表變量|dictsort:"數字" }} 排序從小到大
{{ 列表變量|dictsortreversed:"數字" }} 排序從大到小
{{ string|escape }} 轉換為html實體
{{ 21984124|filesizeformat }} 以1024為基數,計算最大值,
保留1位小數,增加可讀性
{{ list|first }} 返回列表第一個元素
{{ "ik23hr&jqwh"|fix_ampersands }} &轉為&
{{ 13.414121241|floatformat }} 保留1位小數,可為負數,幾種形式
{{ 13.414121241|floatformat:"2" }} 保留2位小數
{{ 23456 |get_digit:"1" }} 從個位數開始截取指定位置的1個數字
{{ list|join:", " }} 用指定分隔符連接列表
{{ list|length }} 返回列表個數
{% if 列表|length_is:"3" %} 列表個數是否指定數值
{{ "ABCD"|linebreaks }} 用新行用
{{ "ABCD"|linebreaksbr }} 用新行用 標記包裹
{{ 變量|linenumbers }} 為變量中每一行加上行號


{{ "abcd"|ljust:"50" }} 把字符串在指定寬度中對左,
其它用空格填充
{{ "ABCD"|lower }} 小寫
{{ "abcdefghijklmnopqrstuvwxyz"|phone2numeric }}
把字符轉為可以對應的數字??
{{ 列表或數字|pluralize }} 單詞的復數形式,
如列表字符串個數大于1,返回s,否則返回空串
{{ 列表或數字|pluralize:"es" }} 指定es
{{ 列表或數字|pluralize:"y,ies" }} 指定ies替換為y
{{ object|pprint }} 顯示一個對象的值
{{ 列表|random }} 返回列表的隨機一項
{{ string|removetags:"br p div" }} 刪除字符串中指定html標記
{{ string|rjust:"50" }} 把字符串在指定寬度中對右
,其它用空格填充
{{ 列表|slice:":2" }} 切片
{{ string|slugify }} 字符串中留下減號和下劃線,
其它符號刪除,空格用減號替換
{{ 3|stringformat:"02i" }} 字符串格式,
使用Python的字符串格式語法
{{ "EABCD"|striptags }} 剝去[X]HTML語法標記
{{ 時間變量|time:"P" }} 日期的時間部分格式
{{ datetime|timesince }} 給定日期到現在過去了多少時間
{{ datetime|timesince:"other_datetime" }}
兩日期間過去了多少時間
{{ datetime|timeuntil }} 給定日期到現在過去了多少時間,
與上面的區別在于2日期的前后位置。
{{ datetime|timeuntil:"other_datetime" }}
兩日期間過去了多少時間
{{ "abdsadf"|title }} 首字母大寫
{{ "A B C D E F"|truncatewords:"3" }} 截取指定個數的單詞
{{ "111221"|truncatewords_html:"2" }}
截取指定個數的html標記,并補完整
{{ list|unordered_list }} 多重嵌套列表展現為html的無序列表
{{ string|upper }} 全部大寫
{{ string|urlize }} 將URLs由純文本變為可點擊的鏈接。
(沒有實驗成功)
{{ string|urlizetrunc:"30" }} 同上,多個截取字符數。
(同樣沒有實驗成功)
{{ "B C D E F"|wordcount }} 單詞數
{{ "a b c d e f g h i j k"|wordwrap:"5" }}
每指定數量的字符就插入回車符
{{ boolean|yesno:"Yes,No,Perhaps" }}
對三種值的返回字符串,對應是 非空,空,None

轉載于:https://www.cnblogs.com/suncunxu/p/10456500.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449284.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449284.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449284.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 使用 new Date() 和 System.currentTimeMillis() 獲取當前 時間戳

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 在開發過程中&#xff0c;通常很多人都習慣使用new Date()來獲取當前時間。 使用起來也比較方便&#xff0c;同時還可以獲取與當前時間…

持幣過節也能讓錢生錢

今天是國慶長假前最后一個交易日。從盤面上看&#xff0c;投資者包括部分基金公司減倉明顯。對于目前大盤高位震蕩&#xff0c;很多人選擇落袋為安&#xff0c;持幣過節&#xff0c;不失為明智之舉。但你知道嗎&#xff0c;持幣過節也能讓錢生錢。今天我就來為各位講講其中的奧…

關于cat命令修改文件內容(導入變量符號以及變量內容)

關于cat命令修改文件內容&#xff08;導入變量符號以及變量內容&#xff09; cat >1.txt<<END $11 $22 $1 $2 END 查看文件內容為&#xff1a; [rootserver04 ~]# cat 1.txt 1 2[rootserver04 ~]# 說明導入的$1,$2自動被解析了。但是當我們想輸入一些變量而不被解析…

Android - AsyncTask你知道多少?

http://www.cnblogs.com/qlky/p/5658070.html 為什么asyncTask最好在主線程初始化&#xff1f;在子線程怎么辦&#xff1f; AsyncTask四個方法的執行順序&#xff1f; mWorker和mFuture對象分別是什么&#xff1f;有什么作用&#xff1f;和doInbackground還有postExecute有什么…

2020-3-15

題目一&#xff1a; 問答 請寫出如下代碼運行后產生的結果&#xff0c;并給出解釋&#xff0c;說明結果是如何得出的。 setTimeout(() > console.log(a)); Promise.resolve().then(() > console.log(b);).then(() > Promise.resolve(c).then((data) > {setTimeout…

Kong-dashboard 安裝 啟動運行

Kong Dashboard 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Kong is a scalable, open source API Layer (also known as a API Gateway, or API Middleware). Kong runs in front o…

自動讓錢生錢方法100%安全穩定

中國區網友問題&#xff1a;   手里有一些余錢&#xff0c;希望找一個方法能夠讓錢自動生錢。最好不要讓我煩心的&#xff0c;能夠自動操作。并且不能有風險&#xff0c;本錢絕不能有風險&#xff0c;利潤要很豐厚才可以。像銀行存款、股票基金就不要介紹了。因為前者生錢太慢…

linux lnmp15 部署laravel項目

使用composer創建一個 laravel項目 安裝composer&#xff1a; https://www.jianshu.com/p/ce1d36cbe00f composer create-project laravel/laravel5.5.* --perfer-dist /home/web/blog 復制代碼添加虛擬主機配置文件 sudo lnmp vhost add 復制代碼注&#xff1a;由于laravel的入…

ReentrantLock源碼

ReentrantLock與Synchronized區別在于后者是JVM實現&#xff0c;前者是JDK實現&#xff0c;屬于Java對象&#xff0c;使用的時候必須有明確的加鎖(Lock)和解鎖(Release)方法&#xff0c;否則可能會造成死鎖。 先來查看ReentrantLock的繼承關系(下圖)&#xff0c;實現了Lock和Se…

2020-3-16

題目一&#xff1a; 如何用js獲取checked屬性值。 通過checked屬性可以設置復選框或者單選按鈕處于選中狀態。 <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <script> window.onload ()>{let ckdocument.getElementByI…

讓錢生錢!商人賺錢的6條方法

錢&#xff0c;這個是做商人第一件需要了解的東西&#xff0c;如何讓錢生錢呢 商人須知&#xff1a; 1、賺錢第一要手上有余銀&#xff0c;倒買倒賣相信大家見多了把&#xff0c;手上最好有100W&#xff0c;最少也要50W&#xff0c;如果沒有&#xff0c;就先積累哪么多&#xf…

【轉】Snackbar和Toast的花式使用,這一篇就夠了

https://www.jianshu.com/p/e023bfb6466b 轉載于:https://www.cnblogs.com/tc310/p/10679042.html

解決報錯: No candidates found for method call XXXX (方法沒有調用者)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 No candidates found for method call XXXX 報錯如題&#xff0c;指 xxx 這個方法 沒有調用者。 我是要直接返回一個 PageImpl 對象…

裝飾器概念及運用

#!/user/bin/env python3# -*-encoding"utf-8"-*-# 1.裝飾器概念#裝飾器本身就是函數&#xff0c;為別的函數添加附加功能。把握兩個遵循的條件。# 1.不修改被修飾的源代碼內容。# 2.不修改被修飾函數的調用方式。# 裝飾器高階函數函數嵌套閉包# 高階函數定義:# 1.函…

2020-3-17

題目一&#xff1a; JavaScript 獲取倒數第二個li元素 如何利用JavaScript獲取li元素集合中的倒數第二個元素。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <style type"text/css"> #box{list-style:none;font-…

java.lang.UnsupportedOperationException 異常分析

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 今天將一個數組轉換成 List 然后進行 remove 操作時卻拋出 java.lang.UnsupportedOperationException 異常。 String pattern " ^,…

『并發包入坑指北』之阻塞隊列

前言 較長一段時間以來我都發現不少開發者對 jdk 中的 J.U.C&#xff08;java.util.concurrent&#xff09;也就是 Java 并發包的使用甚少&#xff0c;更別談對它的理解了&#xff1b;但這卻也是我們進階的必備關卡。 之前或多或少也分享過相關內容&#xff0c;但都不成體系&am…

個人理財有哪些基本原理和方法?

現金為王&#xff1a;不超額消費&#xff0c;不使用信用卡&#xff0c;不負債&#xff08;房貸除外&#xff09; 信貸消費已經成為主流的今天&#xff0c;強調使用現金似乎與時代格格不入。而對于信貸消費的依賴&#xff0c;常常來自于下面幾個看起來十分有力的觀點&#xff…

2019年3月4日 701. Insert into a Binary Search Tree

比較基礎的二叉樹排序樹插入&#xff0c;寫了個遞歸。# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution(object):def insertIntoBST…

2020-3-18

題目一&#xff1a; JavaScript 字符串轉換為數組 其一&#xff1a; let str"apple"; console.log([...str]);運行結果 其二&#xff08;使用split()&#xff09;&#xff1a; let str"apple"; console.log(str.split());注1&#xff1a;如果將參數省略…