Python全棧工程師(42:Web框架Django步驟)
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.模板路徑
- TEMPLATE_DIRS = (
- os.path.join(BASE_DIR,'templates'),
- )
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前端知識體系進行簡單的梳理
Python全棧day9(Python基礎)
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
Python全棧day13(作業講解字典嵌套實現用戶輸入添加及查看)
語句 地址 技術 list 輸入 ima 北京 ice lower 要求: 列出字典對應節點名稱,根據用戶輸入可以添加節點,查看節點等功能,這裏以地址省-市-縣等作為列子,此題熟悉字典嵌套功能 vim day13-16.py db = {} path = [] wh
Python全棧day14(字符串格式化)
obb per 用途 轉換 clas 接受 應輸入 ber 打印 一,%字符串格式化 1,使用%s 後面一一對應輸入對應的字符串,%s可以接受任何參數 print ("I am %s hobby is zhangsan"%‘lishi‘) print ("I am
Python全棧day18(叠代器協議和for循環工作機制)
內部 highlight next 計算 內置函數 如何 異常 初始 一次循環 一,什麽是叠代和遞歸 遞歸和叠代都是循環的一種。 簡單地說,遞歸是重復調用函數自身實現循環。叠代是函數內某段代碼實現循環,而叠代與普通循環的區別是:循環代碼中參與運算的變量同時是保存結果
Python全棧day18(三元運算,列表解析,生成器表達式)
協議 什麽是 list 列表解析 不但 pri 就是 雞蛋 無限制 一,什麽是生成器 可以理解為一種數據類型,這種數據類型自動實現了叠代器協議(其他數據類型需要調用自己內置的__iter__方法),所以生成器是可叠代對象。 二,生成器分類在python中的表現形式
Python全棧day21(調用模塊路徑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