电竞比分网-中国电竞赛事及体育赛事平台

分享

django

 印度阿三17 2019-02-13

Django 是從真實(shí)世界的應(yīng)用中成長起來的,它是由 堪薩斯(Kansas)州 Lawrence 城中的一個(gè) 網(wǎng)絡(luò)開發(fā)小組編寫的。 它誕生于 2003 年秋天,那時(shí) Lawrence Journal-World 報(bào)紙的 程序員 Adrian Holovaty 和 Simon Willison 開始用 Python 來編寫程序。

當(dāng)時(shí)他們的 World Online 小組制作并維護(hù)當(dāng)?shù)氐膸讉€(gè)新聞?wù)军c(diǎn), 并在以新聞界特有的快節(jié)奏開發(fā)環(huán)境中逐漸發(fā)展。 這些站點(diǎn)包括有 LJWorld.com、Lawrence.com 和 KUsports.com, 記者(或管理層) 要求增加的特征或整個(gè)程序都能在計(jì)劃時(shí)間內(nèi)快速的被建立,這些時(shí)間通常只有幾天 或幾個(gè)小時(shí)。 因此,Adrian 和 Simon 開發(fā)了一種節(jié)省時(shí)間的網(wǎng)絡(luò)程序開發(fā)框架, 這是在截止時(shí)間前能完成程序的唯一途徑。

2005 年的夏天,當(dāng)這個(gè)框架開發(fā)完成時(shí),它已經(jīng)用來制作了很多個(gè) World Online 的站點(diǎn)。 當(dāng)時(shí) World Online 小組中的 Jacob Kaplan-Moss 決定把這個(gè)框架發(fā)布為一個(gè)開源軟件。

從今往后數(shù)年,Django是一個(gè)有著數(shù)以萬計(jì)的用戶和貢獻(xiàn)者,在世界廣泛傳播的完善開源項(xiàng)目。 原來的World Online的兩個(gè)開發(fā)者(Adrian and Jacob)仍然掌握著Django,但是其發(fā)展方向受社區(qū)團(tuán)隊(duì)的影響更大。

這些歷史都是相關(guān)聯(lián)的,因?yàn)樗齻儙椭忉屃撕苤匾膬牲c(diǎn)。

第一,Django最可愛的地方。Django?誕生于新聞網(wǎng)站的環(huán)境中,因此它提供很多了特性(如管理后臺),非常適合內(nèi)容類的網(wǎng)站,如Amazon.com, craigslist.org和washingtonpost.com,這些網(wǎng)站提供動(dòng)態(tài)的,數(shù)據(jù)庫驅(qū)動(dòng)的信息。 (不要看到這就感到沮喪,盡管Django擅長于動(dòng)態(tài)內(nèi)容管理系統(tǒng), 但并不表示Django主要的目的就是用來創(chuàng)建動(dòng)態(tài)內(nèi)容的網(wǎng)站。 某些方面特別高效與其他方面不高效是有區(qū)別的,Django在其他方面也同樣高效。)

第二,Django的起源造就了它的開源社區(qū)的文化。 因?yàn)镈jango來自于真實(shí)世界中的代碼,而不是 來自于一個(gè)科研項(xiàng)目或者商業(yè)產(chǎn)品,她主要集中力量來解決Web開發(fā)中遇到的問題,同樣 也是Django的開發(fā)者經(jīng)常遇到的問題。 這樣,Django每天在現(xiàn)有的基礎(chǔ)上進(jìn)步。 框架的開發(fā)者對于讓開發(fā)人員節(jié)省時(shí)間,編寫更加容易維護(hù)的程序,同時(shí)保證程序運(yùn)行的效率具有極大的興趣。 無他,開發(fā)者動(dòng)力來源于自己的目標(biāo):節(jié)省時(shí)間,快樂工作。 (坦率地講,他們使用了自己公司的產(chǎn)品。)

?

?

安裝:

?

自動(dòng)化安裝

#更新依賴庫

pip install --upgrade setuptools

#安裝指定的版本

pip?install?Django==2.0.4

?

?

文件式安裝

進(jìn)入到Django文件安裝目錄,輸入命令:

python setup.py install

?

?

安裝后打印版本號

python -m django –version

?

?

?

生成Django項(xiàng)目

django-admin startproject mysite

注意:有的django-admin找不到問題,需要配置環(huán)境變量

?

?

啟動(dòng)服務(wù)

python manage.py runserver

?

?

本地化中間件

'django.mididdleware.locale.LocaleMiddleware',

?

?

路由包括 精準(zhǔn)路由和正則路由

#定義首頁 首頁留空 第二個(gè)參數(shù) 指定路由方法

????path('',d1.index),

????#再定義一個(gè)路由

????path('test',d1.test),

????#定義一個(gè)重定向頁面

????path('123',d1.re_url),

????#使用多個(gè)網(wǎng)址來指向同一個(gè)路由方法

????path('456',d1.re_url),

????#定義存儲cookie的路由

????path('save_cookie',d1.save_cookie),

????#定義獲取cookie的路由

????path('get_cookie',d1.get_cookie),

????#定義刪除cookie的路由

????path('del_cookie',d1.del_cookie),

????#定義一個(gè)正則路由,可以使用\d數(shù)字

????#常用元字符 .匹配所有 \d數(shù)字 \D非數(shù)字 \w 字母數(shù)字_

????#如果在正則路由內(nèi),使用()分組,那么django會(huì)認(rèn)為進(jìn)行路由傳參

????# re_path('^test-\d -.*$',d1.test_re)

 re_path('^test-(\d )-(.*)$',d1.test_re)

?

?

?

Cookie 操作

#定義設(shè)置cookie(存儲)

def save_cookie(request):

????#定義回應(yīng)

????response = HttpResponse("存儲cookie ok")

????#定義過期時(shí)間

????expires = datetime(year=2019,month=11,day=20,hour=15,minute=5,second=0)

????#轉(zhuǎn)儲為django內(nèi)置時(shí)間

????expires = make_aware(expires)

????#進(jìn)行存儲動(dòng)作

????response.set_cookie("username","jack",expires=expires)

????#將回應(yīng)對象返回

????return response

?

#定義獲取cookie(?。?/p>

def get_cookie(request):

????#定義變量獲取cookies屬性

????cookies = request.COOKIES

????#從cookies通過key獲取value

????username = cookies.get("username","未拿到用戶名")

????#將用戶名返回

????return HttpResponse(username)

?

?

#定義刪除cookie方法

def del_cookie(request):

????#定義response對象

????response = HttpResponse("刪除cookie成功")

????#調(diào)用delete_cookie()方法來刪除cookie

????response.delete_cookie("username")

????#返回response

????return response

?

?

?

?

?

Django 模板 采用了 jinja2模板 但是與flask有一定的出入需要注意

?

#導(dǎo)入模板解析庫

from django.shortcuts import render

?

#模板傳值

return render(request,'d2_index.html',{'test_str':test_str,'test_int':test_int,'test_list':test_list,'test_dict':test_dict,'content':content,'dt':dt})

?

{# 模板語法輸出 #}

{{ test_str }}

????

{# 加法運(yùn)算 通過調(diào)用內(nèi)置過濾器來實(shí)現(xiàn)加法運(yùn)算 #}

?

{{ test_int | add:-10 }}

?

{# ?模板輸出list #}

{{ test_list }}

{{ test_list.2 }}

?

{% for item in test_list %}

  ?{{ item }}

? {# 打印索引 counter 從1開始的計(jì)數(shù)器 #}

????????{{ forloop.counter }}

????????{# 打印數(shù)組索引 #}

????????{{ forloop.counter0 }}

????????{# ?倒序索引 #}

????????{{ forloop.revcounter }}

? ? ? ??

????{% endfor %}

?

????{# 循環(huán)嵌套輸出 #}

????{% for item in test_dict %}

????????????{# 取首位和末尾 #}

????????????姓名:{{ item.name | first }} {{ item.name | last }} ? ?年齡:{{ item.age }}

????{% endfor %}

?

?

?

????{# 大小寫互轉(zhuǎn) #}

????{{ 'jack' | upper }}

????{{ 'ROSE' | lower }}

?

????{# 鏈?zhǔn)秸{(diào)用 #}

????{{ 'jack' | first | upper }}

?

????{# 返回長度 #}

????{{ '123456' | length }}

?

????{# 截?cái)嗖僮?#}

????截?cái)嘧址僮鱷{ content | truncatechars:20 }}

????截?cái)鄦卧~操作{{ content | truncatewords:3 }}

?

????{# 格式化日期 #}

? ? {{ dt | date:"Y-m-d H:i:s" }}

?

?

?

?

?

?

Cookie簡易操作

#定義回應(yīng)

????response = HttpResponse("存儲成功")

????#第三個(gè)參數(shù)也可以傳max_age,單位是秒

????response.set_cookie("email",p1,max_age=10)

????#返回回應(yīng)

????return response

?

來源:http://www./content-4-113651.html

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多