欧美成人片一区二区三区,久久碰人妻一区二区三区,久久婷婷激情综合色综合俺也去,狂野欧美性猛交免费视频,久久夜色精品国产亚洲

04
2020/07

django使用中遇到的小問題以及解決方案

發(fā)布時間:2020-07-04 17:32:25
發(fā)布者:神棍子
瀏覽量:
0

整理了一些在django使用中遇到的小問題以及解決方案

1:模板引入

    1)django中導(dǎo)入模板使用 文件地址要在指定的templates下如

    批注 2020-07-04 173605.jpg

     {% include  "common/head.html" %}

    2)導(dǎo)入靜態(tài)文件資源需要先聲明static

        {% load static %}

2:模板語法與前端js沖突時,可在前后導(dǎo)入標簽解決。例:

    批注 2020-07-04 173929.jpg

    {% verbatim %}

        代碼片段...

    {% endverbatim %}

3:for in循環(huán)中想到得到循環(huán)次數(shù)可以使用forloop方法:

    {% for i in data %}

    {{forloop.counter0}}#當(dāng)前循環(huán)次數(shù) 從0開始

    {{forloop.counter}}#當(dāng)前循環(huán)次數(shù) 從1開始

    {{forloop.revcounter0}}#當(dāng)前循環(huán)data剩余個數(shù) 從0開始

    {{forloop.revcounter}}#當(dāng)前循環(huán)data剩余個數(shù) 從1開始

    {% endfor %}

4:模板中變量過濾器

    (1)add        使用形式為:{{ value | add: "2"}}

            意義:將value的值增加2

    

    (2)addslashes        使用形式為:{{ value | addslashes }}

            意義:在value中的引號前增加反斜線

    

    (3)capfirst        使用形式為:{{ value | capfirst }}

            意義:value的第一個字符轉(zhuǎn)化成大寫形式

    

    (4)cut         使用形式為:{{ value | cut:arg}}, 例如,如果value是“String with spaces” arg是" "那么輸出是"Stringwithspaces"

             意義:從給定value中刪除所有arg的值

    

    (5)date         使用形式為::

                 (a) {{ value | date:"D d M Y" }},例如,如果value是一個datetime對象(datetime.datetime.now())那么輸出將是字符串"Wed 09 Jan 2008"

                 (b) {{ value | date }},這種形式?jīng)]有格式化字符串,這時候,格式化字符串會自動采用DATE_FORMAT所設(shè)置的形式。

             意義:將日期格式數(shù)據(jù)按照給定的格式輸出

    

    (6)default         使用形式:{{ value | default: "nothing" }},例如,如果value是“”,那么輸出將是nothing

             意義:如果value的意義是False,那么輸出使用缺省值

    

    (7)default_if_none         使用形式:{{ value | default_if_none:"nothing" }},例如,如果value是None,那么輸出將是nothing

             意義:如果value是None,那么輸出將使用缺省值

    

    (8)dictsort         意義:如果value的值是一個字典,那么返回值是按照關(guān)鍵字排序的結(jié)果

             使用形式:{{ value | dictsort:"name"}},例如,

             如果value是:

        [ {‘name’: ‘zed’, ‘a(chǎn)ge’: 19},

         {‘name’: ‘a(chǎn)my’, ‘a(chǎn)ge’: 22},

         {‘name’: ‘joe’, ‘a(chǎn)ge’: 31}, 

        ] 那么,輸出是:

         [ {‘name’: ‘a(chǎn)my’, ‘a(chǎn)ge’: 22}, 

            {‘name’: ‘joe’, ‘a(chǎn)ge’: 31},   

              {‘name’: ‘zed’, ‘a(chǎn)ge’: 19},

         ]

    (9)dictsortreversed

    意義:如果value的值是一個字典,那么返回值是按照關(guān)鍵字排序的結(jié)果的反序 

    使用形式:與上述(8)完全相同。

    (10)divisibleby

    使用形式:{{ value | divisibleby:arg}},如果value是21,arg是3,那么輸出將是True 

    意義:如果value能夠被arg整除,那么返回值將是True

    (11)escape

    使用形式:{{ value | escape}} 

    意義:替換value中的某些字符,以適應(yīng)HTML格式,包括: 

    < is converted to <

     > is converted to

    ’(single quote) is converted to '

     ” (double quote) is converted to &quto;

     & is converted to &

    escape僅僅在輸出的時候才起作用,所以escape不能夠用在鏈式過濾器的中間, 他應(yīng)該總是最后一個過濾器,如果想在鏈式過濾器的中間使用,那么可以使用force_escape

    (12)escapejs

    使用形式:{{ value | escapejs }} 

    意義:替換value中的某些字符,以適應(yīng)JAVASCRIPT和JSON格式。

    (13)filesizeformat

    使用形式:{{ value | filesizeformat }} 

    意義:格式化value,使其成為易讀的文件大小,例如:13KB,4.1MB等。

    (14)first

    使用形式:{{ value | first }} 

    意義:返回列表中的第一個Item,例如,如果value是列表[‘a(chǎn)’,’b’,’c’],那么輸出將是’a’。

    (15)floatformat

    使用形式:{{ value | floatformat}}或者{{value|floatformat:arg}}, arg可以是正數(shù)也可以是負數(shù)。沒有參數(shù)的floatformat相當(dāng)于floatformat:-1 

        (1)如果不帶arg,那么引擎會四舍五入,同時最多只保留一位小數(shù)。

            34.23234 {{ value|floatformat }} 

            34.2 34.00000 {{ value|floatformat }} 

            34 34.26000 {{ value|floatformat }} 34.3

        (2)如果arg是正數(shù),那么引擎會四舍五入,同時保留arg位的小數(shù)。

            34.23234 {{ value|floatformat:3 }} 34.232 

            34.00000 {{ value|floatformat:3 }} 34.000 

            34.26000 {{ value|floatformat:3 }} 34.260

        (3)如果arg是負數(shù),那么引擎會四舍五入,如果有小數(shù)部分,那么保留arg位小數(shù);否則,則沒有任何小數(shù)部分。

            34.23234 {{ value|floatformat:”-3” }} 34.232

            34.00000 {{ value|floatformat:”-3” }} 34 

            34.26000 {{ value|floatformat:”-3” }} 34.26

    (16)get_digit

    使用形式:{{ value | get_digit:”arg”}},例如,如果value是123456789,arg是2,那么輸出是8

    意義:給定一個數(shù)字,返回,請求的數(shù)字,記住:1代表最右邊的數(shù)字,如果value不是合法輸入, 那么會返回所有原有值。

    (17)iriencode

    使用形式:{{value | iriencode}} 

    意義:如果value中有非ASCII字符,那么將其進行抓化成URL中適合的編碼,如果value已經(jīng)進行過URLENCODE, 改操作就不會再起作用。

    (18)join

    使用形式:{{ value | join:”arg”}},如果value是[‘a(chǎn)’,’b’,’c’],arg是’//’那么輸出是a//b//c 

    意義:使用指定的字符串連接一個list,作用如同python的str.join(list)

    (19)last

    使用形式:{{ value | last }} 

    意義:返回列表中的最后一個Item

    (20)length

    使用形式:{{ value | length }} 

    意義:返回value的長度。

    (21)length_is

    使用形式:{{ value | length_is:”arg”}} 

    意義:返回True,如果value的長度等于arg的時候,例如:如果value是[‘a(chǎn)’,’b’,’c’],arg是3,那么返回True

    (22)linebreaks

    使用形式:{{value|linebreaks}} 

    意義:value中的”\n”將被
替代,并且整個value使用

包圍起來,從而適和HTML的格式

    (23)linebreaksbr

    使用形式:{{value |linebreaksbr}} 

    意義:value中的”\n”將被
替代

    (24)linenumbers

    使用形式:{{value | linenumbers}} 

    意義:顯示的文本,帶有行數(shù)。

    (25)ljust

    使用形式:{{value | ljust}} 

    意義:在一個給定寬度的字段中,左對齊顯示value

    (26)center

    使用形式:{{value | center}} 

    意義:在一個給定寬度的字段中,中心對齊顯示value

    (27)rjust

    使用形式:{{value | rjust}} 

    意義:在一個給定寬度的字段中,右對齊顯示value

    (28)lower

    使用形式:{{value | lower}} 

    意義:將一個字符串轉(zhuǎn)換成小寫形式

    (29)make_list

    使用形式:{{value | make_list}} 

    意義:將value轉(zhuǎn)換成一個list,對于字符串,轉(zhuǎn)換成字符list;對于整數(shù),轉(zhuǎn)換成整數(shù)list 例如value是Joel,那么輸出將是[u’J’,u’o’,u’e’,u’l’];value是123,那么輸出將是[1,2,3]

    (30)pluralize

    使用形式:{{value | pluralize}},或者{{value | pluralize:”es”}},或者{{value | pluralize:”y,ies”}} 

    意義:如果value不是1,則返回一個復(fù)數(shù)后綴,缺省的后綴是’s’

    (31)random

    使用形式:{{value | random}} 

    意義:從給定的list中返回一個任意的Item

    (32)removetags

    使用形式:{{value | removetags:”tag1 tag2 tag3…”}} 

    意義:刪除value中tag1,tag2….的標簽。例如,如果value是Joel a slug tags是”b span”,那么輸出將是:Joel a slug

    (33)safe

    使用形式:{{value | safe}} 

    意義:當(dāng)系統(tǒng)設(shè)置autoescaping打開的時候,該過濾器使得輸出不進行escape轉(zhuǎn)換

    (34)safeseq

    與上述safe基本相同,但有一點不同的就是:safe是針對字符串,而safeseq是針對多個字符串組成的sequence

    (35)slice

    使用形式:{{some_list | slice:”:2”}} 

    意義:與python語法中的slice相同,:2表示第一的第二個元素

    (36)slugify

    使用形式:{{value | slugify}} 

    意義:將value轉(zhuǎn)換成小寫形式,同事刪除所有分單詞字符,并將空格變成橫線 例如:如果value是Joel is a slug,那么輸出將是joel-is-a-slug

    (37)stringformat

    這個不經(jīng)常用,先不說 {{ value|stringformat:”E” }} If value is 10, the output will be 1.000000E+01.

    (38)striptags

    使用形式:{{value | striptags}} 

    意義:刪除value中的所有HTML標簽

    (39)time

    使用形式:{{value | time:”H:i”}}或者{{value | time}} 

    意義:格式化時間輸出,如果time后面沒有格式化參數(shù),那么輸出按照TIME_FORMAT中設(shè)置的進行。(40)title轉(zhuǎn)換一個字符串成為title格式。

    (41)truncatewords使用形式:{{value | truncatewords:2}} 

    意義:將value切成truncatewords指定的單詞數(shù)目 例如,如果value是Joel is a slug 那么輸出將是:Joel is …

    (42)truncatewords_html使用形式同(41) 

    意義:truncation點之前如果某個標簽打開了,但是沒有關(guān)閉,那么在truncation點會立即關(guān)閉。 因為這個操作的效率比truncatewords低,所有只有在value是html格式時,才考慮使用。

    (43)upper

    轉(zhuǎn)換一個字符串為大寫形式

    (44)urlencode

    將一個字符串進行URLEncode

    (45)urlize

    意義:將一個字符串中的URL轉(zhuǎn)化成可點擊的形式。 

    使用形式:{{ value | urlize }} 例如,如果value是Check out www.djangoproject.com,那么輸出將是: Check out www.djangoproject.com 

    (46)urlizetrunc

    使用形式:{{ value | urlizetrunc:15}} 

    意義:與(45)相同,但是有一點不同就是現(xiàn)實的鏈接字符會被truncate成特定的長度,后面以…現(xiàn)實。

    (47)wordcount

    返回字符串中單詞的數(shù)目

    (48)wordwrap

    使用形式:{{value | wordwrap:5}} 

    意義:按照指定的長度包裝字符串 例如,如果value是Joel is a slug,那么輸出將會是: Joel is a slug

    (49)timesince

    使用形式:{{value | since:arg}} 

    意義:返回參數(shù)arg到value的天數(shù)和小時數(shù) 例如,如果 blog_date 是一個日期實例表示 2006-06-01 午夜, 而 comment_date 是一個日期實例表示 2006-06-01 早上8點, 那么 {{ comment_date|timesince:blog_date }} 將返回 “8 hours”.

    (50)timeuntil使用形式:{{value | timeuntil}} 

    意義:與(49)基本相同,一個不同點就是,返回的是value距離當(dāng)前日期的天數(shù)和小時數(shù)。#實例:

    

    #value1="aBcDe"

    {{ value1|upper }}
  ABCDE

    

    #value2=5

    {{ value2|add:3 }}
  8

    

    #value3='he  llo wo r ld'

    {{ value3|cut:' ' }}
  helloworld

    

    #import datetime

    #value4=datetime.datetime.now()

    {{ value4|date:'Y-m-d' }}
  2018-05-11

    

    #value5=[]

    {{ value5|default:'空的' }}
  空的 # 如果前面的值為空,則顯示default中的內(nèi)容

    

    #value6='跳轉(zhuǎn)'

    

    {{ value6 }}  # 前端顯示跳轉(zhuǎn) 這是一種安全機制

    

    {% autoescape off %}   # 范圍取消安全機制

      {{ value6 }}      # 這會顯示正常的a標簽

    {% endautoescape %}

    

    {{ value6|safe }}
  # 與上面的方法一樣,不是范圍而已

    

    {{ value6|striptags }}  跳轉(zhuǎn) # 取消所有html標簽

    

    #value7='1234'

    {{ value7|first }}
  1  # 取第一個

    {{ value7|length }}
  4  # 取長度

    {{ value7|slice:":-1" }}
  4321 # 切片 

    

    #value8='http://www.baidu.com/?a=1&b=3'

    {{ value8|urlencode }}
# value = 'CPTTTTTTTTTTTT'{{ value|truncatechars:3 }}   # 那么輸出的時候,會輸出'CPT'

5:post獲取input數(shù)組

    普通情況只會獲取到相同name提交的最后一個,要獲取所有的話需要使用

    request.POST.getlist('name名稱')

    例:

        template:

            

              <input type="text" name="peoName" value='1'/>

             ?。糹nput type="text" name="peoName" value='2'/>

              <input type="text" name="peoName" value='3'/>

            

        view:

            request.POST.getlist('peoName')

            ['1','2','3']

6.objects中create插入字典(需要在字典前加**)

    例:

            create = {}

            create['brand'] = concat['brand']

            create['xinghao'] = concat['xinghao']

            models.Vehicle.objects.create(**create)


關(guān)鍵詞:
返回列表