1. 程式人生 > >Python全棧工程師(42:Web框架Django步驟)

Python全棧工程師(42:Web框架Django步驟)

1.建立Django工程

django-admin startproject 工程名

2.建立app

cd 工程名

python manage.py startapp cmdb

3.靜態檔案

project.settings.py

  1. STATICFILES_DIRS = (  
  2.         os.path.join(BASE_DIR,'static'),  
  3.     )  

4.模板路徑

  1. TEMPLATE_DIRS = (  
  2.         os.path.join(BASE_DIR,'templates'),  
  3.     )  

5.settings中

middlerware  #註釋 csrf

6.定義路由規則(路由系統URL)

(1) url(r'^index/',views.index),

(2)url(r'^home/',views.Home.as_view()),

(3)url(r'^detail-(\d+).html',views.detail),   

    def detail(request,nid):

(4) url(r'^index-(\d+nid)-(\d+uid).html/',views.index),

def index(request,nid,uid)#一一對應

(5)url(r'^index/(?P<nid>\d+/(?P<uid>\d+)/',views.index),

def index(request,*args,**kwargs):  #分別對應args--nid和kwargs--uid

(6)name:對url路由關係進行命名,以後可以根據此名稱生成自己想要的url

url(r'^abc/',views.index,name='index1',)--->對應模板語言 {%url "index1"%}

url(r'^abc/(\d+)/',views.index,name="index1")-->對應模板語言{%url "index1" 3%}  #生成固定

注:

html表單裡面的action :{{request.path_info}}

(7)name

from django.utls import reverse

reverse('indexs',args=(90,))或reverse('indexs',kwargs={"nid":1,"uid":2})

eg:

url(r'^abc/',views.index,name='i1',),

url(r'^yug/(\d+)/(\d+)/',views.index,name="i2"),

url(r'^buy/(?P<pid>\d+/(?P<nid>\d+)/',views.index,name='i3'),

def func(request,*args,**kwargs):

    from django.urls import reverse

url1 = reverse('i1') #abc/

url2 = reverse('i2',args=(1,2))  #yug/1/2/

url3 = reverse('i3',kwarge={'pid':1,'nid':2}) #buy/1/9/

xxx.html

{%url "i1%" }   #abc/

{%url "i2 1 2%" }  #yug/1/2

{%url "i3" pid=1 nid=9 %}  #buy/1/9/

(8)路由分發:多個app時

url(r^'app01/',include("app01.urls")),

url(r^'app02/',include("app02.urls")),

(9)預設值

(10)名稱空間

7.定義檢視函式

app下views.py

獲取資料:

def fun(request):

     #request.method  GET/POST

    #http://127.0.0.1:8009/home?nid=123&name=julia

    #request.GET.get('',None)  獲取請求發來的資料

    #request.POST.get('',None)

返回資料:

    #return HttpResponse('字串')

    #return render(requets,'HTML模板的路徑',{‘ ’})

    #return redirect('/只能填url')  #只能傳url前面的路徑,不能直接傳模板

補充:

request.GET

request.POST

request.FILES  #獲取檔案請求

request.POST.getlist()   #獲取checkbox等多選的內容

#上傳檔案

form裡面必須設定: enctype=“multipart/form-data”

obj = request.FILES.get('檔名')

obj.name

f =open(obj.name,mode='wb')

for item in obj.chunks():

    f.write(item)

f.close()

函式vs類:

FBV&CBV

function base view

url.py

    index-->函式名

view.py

    def 函式(request):

==>

/index/ -->函式名

/index/ --> 類 (基層views)

建議連著都用

8.模板渲染

特殊的模板語言

{{變數名}}

def func(request):

    return render(request,"index.html",{'current_user':"julia"}) 

index.html

<html>

..

<body>

    <div>{{current_user}}</div>

</body>

</html>

==>最後生成

<html>

..

<body>

    <div>julia</div>

</body>

</html>

--for迴圈、if、

def func(request):

    return render(request,"index.html",{'current_user':"julia",'user_list':['alex','eric'],'user_dict':{'k1':'v1','k2':'v2'}}) 

index.html

...

{% for row in user_list%}

    <li>{{row}}</li>

{%endfor%}

<a>{{user_list.1}}</a>

<a>{{user_dict.k1}}</a>

相關推薦

Python工程師42:Web框架Django步驟

1.建立Django工程django-admin startproject 工程名2.建立appcd 工程名python manage.py startapp cmdb3.靜態檔案project.settings.pySTATICFILES_DIRS = (         

Python工程師多繼承、函式重寫

ParisGabriel          每天堅持手寫  一天一篇  決定堅持幾年 為了夢想為了信仰   開局一張圖                       Python人工智慧從入門到精通 補充:  物件 -------------------------> 類例項變數(屬性

Python工程師32:Dom

文件物件模型(Document Object Model,DOM)是一種用於HTML和XML文件的程式設計介面。它給文件提供了一種結構化的表示方法,可以改變文件的內容和呈現方式。DOM把網頁和指令碼以及其他的程式語言聯絡了起來。DOM屬於瀏覽器,而不是JavaScript語言

web工程師前端進階學習線路圖

近兩年關於“前端工程師堅守前端還是主攻全棧開發”的問題,成為很多程式設計愛好者熱議的話題。全棧開發工程師的概念最早是由Facebook提出的。全棧的核心是指開發者能夠承擔包括前端、後端在內的所有功能開發任務。與傳統前端相比,web全棧開發工程師需要具備跨領域知識,甚至需要成為全才。作為勇於挑戰自我的前端,

Python工程師學習筆記|Django框架介紹與安裝

Python全棧工程師學習筆記|Django框架介紹與安裝 (1). Web開發介紹 進群:943752371可以獲取Python入門學習資料哦! Python全棧工程師學習筆記|Django框架介紹與安裝 目前Web開發屬於Browser/Server模式,簡稱B

Python工程師學習筆記|Django框架介紹與安裝!

wrap tle 無需 基礎設施 nag 當前 不同 shadow var (1). Web開發介紹 目前Web開發屬於Browser/Server模式,簡稱BS架構,開發語言有(Python、PHP、Java ...)。基於Python的Web工作原理如下:(2). 框架

python測試題

span hello sdi 執行 python腳本 pan 數字 ice 登錄 1、執行Python腳本的兩種方式 如果想要永久保存代碼,就要用文件的方式 如果想要調試代碼,就要用交互式的方式即終端命令下和python環境中 2、Pyhton單行註釋和多行註釋分別用什

向著工程師前進!Web前端知識體系精簡

培訓 前端 Web前端技術由html、CSS和JavaScript三大部分構成,是一個龐大而復雜的技術體系,其復雜程度不低於任何一門後端語言。而我們在學習它的時候往往是先從某一個點切入,然後不斷地接觸和學習新的知識點,因此對於初學者很難理清楚整個體系的脈絡結構。本文將對Web前端知識體系進行簡單的梳理

Pythonday9Python基礎

lin 終端 .exe linux efi 雙擊 config 編譯 tps Python基礎 一,Windows安裝Python3.5 下載地址:https://www.python.org/ftp/python/3.5.2/python-3.5.2rc1-amd64.e

Pythonday13作業講解字典嵌套實現用戶輸入添加及查看

語句 地址 技術 list 輸入 ima 北京 ice lower 要求:   列出字典對應節點名稱,根據用戶輸入可以添加節點,查看節點等功能,這裏以地址省-市-縣等作為列子,此題熟悉字典嵌套功能 vim day13-16.py db = {} path = [] wh

Pythonday14字符串格式化

obb per 用途 轉換 clas 接受 應輸入 ber 打印 一,%字符串格式化   1,使用%s 後面一一對應輸入對應的字符串,%s可以接受任何參數 print ("I am %s hobby is zhangsan"%‘lishi‘) print ("I am

Pythonday18叠代器協議和for循環工作機制

內部 highlight next 計算 內置函數 如何 異常 初始 一次循環 一,什麽是叠代和遞歸   遞歸和叠代都是循環的一種。   簡單地說,遞歸是重復調用函數自身實現循環。叠代是函數內某段代碼實現循環,而叠代與普通循環的區別是:循環代碼中參與運算的變量同時是保存結果

Pythonday18三元運算,列表解析,生成器表達式

協議 什麽是 list 列表解析 不但 pri 就是 雞蛋 無限制 一,什麽是生成器   可以理解為一種數據類型,這種數據類型自動實現了叠代器協議(其他數據類型需要調用自己內置的__iter__方法),所以生成器是可叠代對象。 二,生成器分類在python中的表現形式

Pythonday21調用模塊路徑BASEDIR的正確方法

變化 一個 pre dirname 發生 文件 導入 復制 sys 正常寫python程序會有一個可執行的bin.py文件,假如這個文件需要導入my_module裏面定義的模塊,應該怎麽設置sys.path 文件夾目錄結構如下,因為bin不在與my_module同級目錄下,

python工程師視頻教程

http 教程 read for 網盤 blog 最全 全棧工程師 圖片 下載地址:百度網盤最全python全棧工程師視頻教程

前端程式設計師如何快速轉型工程師基礎版

前端與後端的思維專注點很不相同,前端聚焦在如何把內容以視覺化的方式展現給使用者,後端聚焦在如何利用IT基礎設施實現業務邏輯。所以前端參與後端開發時(全棧工程師必備!)首先需要理解後端會做哪些事,其次才是如何才能做好這些事。 所謂“利用IT基礎設施實現業務邏輯”,意味著以下幾

關於Flask模板、框架、變數Python Web

模板 Templates: 模板中的語法規範 變數: 變數時一種特殊的佔位符 告訴模板引擎該位置的 值是從渲染模板時的資料中來獲取的 在檢視中: name和age就是要傳遞到xxx.html中的變數 在模板中: {{變數名}} Python程式碼 模板 變數可以傳遞任何型別引數 包

python web框架 Django基本操作

一個 data pytho ket position mysql bootstrap 連接數據庫 減少 django 操作總結! django框架安裝:   cmd安裝: pip3 install django   pycharm安裝: 在python變量下 搜索 dj

買《Python Web工程師》專題視頻課程送紙質圖書

電商 用戶 ESS 領取 sha 子圖 工程師 用戶名 col 經過一年多時間的嘔心瀝血,Python立體化圖書——《Python從小白到大牛》即將與大家見面了。所謂立體化圖書包括:電子圖書、視頻、課件和服務等內容。 《Python從小白到大牛》紙質圖書將於10月上旬上市,

Web工程師的自我修養》濃縮筆記

《Web全棧工程師的自我修養》濃縮筆記(上) 2017.03.16 21:45 13917瀏覽   本書的作者餘果,騰訊社交使用者體驗設計部高階UI工程師,前端開發組負責人,熟悉前端開發、iOS開發、P