下載下傳安裝
去官網下載下傳和已安裝的python版本對應的Django版本。
解壓後進入目錄,執行 python setup.py install,執行安裝指令,所謂安裝其實是将需要的檔案拷貝到python對應的目錄。
但第一次卻報錯
Traceback (most recent call last):
File "setup.py", line 5, in <module>
from setuptools import find_packages, setup
ImportError: No module named setuptools
原來是windows環境下python預設沒有安裝 setuptools 這個子產品,是以提示找不到。
去 https://bootstrap.pypa.io/ez_setup.py 下載下傳ez_setup.py腳本并執行就自動安裝上了。
建立PyDev Django Project
在Eclipse,New-PyDev Django Project,建立成功後,Run該項目,Django有一個内置的伺服器,Run後該伺服器就啟動起來了。
在浏覽器執行 http://localhost:8000/ 可看到一個預設的輸出頁面。
建立一個py檔案,比如在目錄 mypy下
mypy/hello.py
from django.http.response import HttpResponse
def hi(request):
return HttpResponse("Hello Python")
修改urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
# url(r'^admin/', include(admin.site.urls)),
url(r'index', "mypy.hello.hi"),
]
url(r'index', "mypy.hello.hi"), 表示在浏覽器輸入 http://localhost:8000/index,就可以通路 mypy包下檔案hello的hi方法,hi方法傳回的字元串會顯示在頁面上。
使用Django加載靜态網頁模闆
建立html頁面 /html/index.html
修改 settings.py下的 TEMPLATES 的 DIR,将index.html所在目錄指派給DIR。
使用内置函數render_to_response加載網頁
loadHtml.py
from django.shortcuts import render_to_response
def hiHtml(request):
return render_to_response("index.html")
模闆注入
在loadHtml.py中定義一個key-value,做實參給了render_to_response
<span style="font-size:18px;">def hiHtml(request):
user = {'name':'nqy',"age":29}
return render_to_response("index.html",user)</span>
在index.html中通過引用key,使用value的值
<span style="font-size:18px;">my name is {{name}}</span>
Django架構約定使用key的方式是{{ }}
(我發現對于初級入門型的課程,大可不必花錢學,因為網上這類免費資源多的是,真正需要付費的是那些進階課程)
讀取get參數
request.GET.get(" ")
<span style="font-size:18px;">id = request.GET.get("id")
name = request.GET.get('name')</span>
中文亂碼問題
在源碼開頭聲明編碼:#coding:utf-8
控制台亂碼:修改預設編碼集,重新開機web項目
條件判斷
注意條件後面的 ":"
<span style="font-size:18px;">if 1==1:
print 'ok'
a = 3+5
print a
else:
print 'false' </span>
<span style="font-size:18px;">if 'keys' in user:
print user['key']
else:
print 'no key \'keys\' in user'</span>
None是特殊的常量,表示“不存在”
判斷某個值是否存在的兩種方式
<span style="font-size:18px;">user={'id':1,'value':'m'}
if 'id' in user.keys():
print user['id']
else:
print 'None'
print '----'
if user.get('id')==None:
print 'None'
else:
print user.get('id')</span>
表單
index.html
<span style="font-size:18px;"><form>
UserName:<input type="text" name="username" value="mac"/>
<br/>
PassWord:<input type="password" name="pw"/>
<br/>
<input type="submit" value="Submit"/>
</form>
Your name is {{myusername}}
<br/>
Your password is {{mypw}}</span>
loadHtml.py
<span style="font-size:18px;">#coding:utf-8
from django.shortcuts import render_to_response
def hiHtml(request):
user = {'myusername':"void","mypw":"void"}
if 'username' in request.GET:
un = request.GET.get("username")
print un
user['myusername'] = un
if 'pw' in request.GET:
pw = request.GET.get('pw')
print pw
user['mypw']=pw
return render_to_response("index.html",user)</span>
next:第10講 限制使用者輸入純數字