中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django開發web站點步驟

發布時間:2020-06-18 21:29:40 來源:網絡 閱讀:636 作者:zenge_blog 欄目:開發技術

1、創建Django工程

django-admin startproject 工程名


2、創建App

cd 工程名
 python manage.py startapp cmdb


3、靜態文件配置

編輯 project.settings.py,追加以下內容

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)


4、模板路徑配置

DIRS ==> (os.path.join(BASE_DIR, 'templates'),)


5、settings中,注釋 csrf

MIDDLEWARE_CLASSES = (
    #'django.middleware.csrf.CsrfViewMiddleware',
)

6、定義路由規則,在url.py中定義用戶訪問的url由哪個函數來處理請求

url.py
    "login"  --> 函數名


7、定義視圖函數,在views.py中定義函數

def func(reuest):
    # request.method GET/POST
    # http://127.0.0.1:8000/home?nid=123&name=bob
    # request.GET.get('',None)  #獲取請求發來的數據
    # request.POST.get('',None)
    # return HttpResponse("字符串")
    # return Render(request, 'HTML模板路徑',{"user_list": USER_LIST})
    # return redirect('只能填URL,例如:/home')


8、模板渲染

Django特殊的模板語言,例如:

--變量名取值--

在views.py中定義好變量和對應的值,在template的html頁面中通過` var_name `的方式來取值

def func(request):
   return render(request,"index.html",{'current_user': "bob"})

index.html

<html>
<body>
    <div>{{ current_user }}</div>
</body>
</html>


--For循環取值--

在views.py中定義好列表和值,在template的html頁面中通過{{ for循環 }}的方式來取值

def func(request):
    return render(request,"index.html",{
    'current_user': "bob",
    'user_list':['bob','aaa','bbb']})

index.html
<html>
<body>
    <div>{{ current_user }}</div>
    <ul>
    {% for row in user_list %}
        <li>{{ row }}</li>
    <% endfor %>
    </ul>
</body>
</html>


--索引取值--

在views.py中定義好字典和值,在template的html頁面中通過` var_name`.`key `的方式來取值

def func(request):
    return render(request,"index.html",{
        'current_user': "bob", 
        'user_list': ['bob','aaa','bbb'],
        'user_dict': ['k1': 'v1', 'k2': 'v2']
        })
        
index.html

<html>
<body>
    <div>{{ current_user }}</div>
    <a>{{ user_list.1 }}</a>  //對于列表直接用索引取值
    <a>{{ user_dict.k1 }}</a> //對于字典,要用key取值
    <a>{{ user_dict.k2 }}</a>
</body>
</html>


--循環字典--

模板語法除了而已循環列表外,也可以循環字典,用法和python基本一樣,只不過循環時,不要加括號()


USER_DICT = {
    'K1': 'V1',
    'K2': 'V2',
    'K3': 'V3',
    'K4': 'V4'
}


例1、循環key
{% for k in USER_DICT.keys %}
    <li>{{ k }}</li>
{% endfor %}


例2、循環鍵值對
{% for item in USER_DICT.items %}
    <li>{{ item }}</li>
{% endfor %}

例3、循環values
{% for v in USER_DICT.values %}
    <li>{{ v }}</li>
{% endfor %}

例4、循環values
{% for k,v in USER_DICT.items %}
    <li>{{ k }}-{{ v }}</li>
{% endfor %}



--條件取值--

{% if %}

    {% if %}

    {% endif %}

    {% else%}

{% else %}

{% endif %}

def func(request):
    return render(request,"index.html",{
        'current_user': "bob", 
        'age': 18,
        'user_list': ['bob','aaa','bbb'],
        'user_dict': ['k1': 'v1', 'k2': 'v2']
        })
        
index.html

<html>
<body>

    <div>{{ current_user }}</div>
    <a>{{ user_list.1 }}</a>  //對于列表直接用索引取值
    <a>{{ user_dict.k1 }}</a> //對于字典,要用key取值
    <a>{{ user_dict.k2 }}</a>
    {% if age %}
    <a>有年齡</a>
        {% if age > 16 %}
            <a>老男人</a>
        {% else %}
            <a>小鮮肉</a>
        {% endif %}
    {% else %}
        <a>無年齡</a>
    {% endif %}
</body>
</html>


模板的工作流程:

  • 1、當用戶請求通過url發送請求后,django路由將請求交給視圖函數,

  • 2、然后視圖函數會先去取模板,

  • 3、將模板中有` current_user `這樣的變量與視圖中定義的值進行渲染,渲染后將模板內容轉換成字符串

  • 4、將生成后字符串整體返回給用戶



過濾器

模板過濾器是變量顯示前轉換它們的值的方式,看起來像下面這樣

{{ name|lower }}

這將顯示通過lower過濾器過濾后` name `變量的值,它將文本轉換成小寫
使用(|)管道來申請一個過濾器


過濾器可以串成鏈,即一個過濾器的結果可以傳向下一個,下面是escape文本內容然后把換行轉換成p標簽的習慣用法

{{ my_text|escape|linebreaks }}




更過關于Django模板的資料,請訪問:

http://blog.csdn.net/zhangxinrun/article/details/8095118/


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴山县| 炉霍县| 攀枝花市| 临颍县| 昌都县| 卢龙县| 常山县| 巴林左旗| 潞城市| 镇雄县| 宽甸| 五华县| 桑日县| 阜南县| 肃北| 攀枝花市| 闽侯县| 玛纳斯县| 卫辉市| 基隆市| 新邵县| 武威市| 射阳县| 扎兰屯市| 海阳市| 喜德县| 南溪县| 五台县| 罗平县| 讷河市| 禹城市| 德兴市| 沾化县| 沂南县| 大洼县| 伊春市| 新竹县| 腾冲县| 鹿邑县| 晋州市| 台江县|