Django site 的架構 (以網址計算機為例)
- <網站名稱>/
- manage.py : 提供使用者方便管理專案的功能
- <網站名稱>
- __init__.py
- settings.py : 專案目錄的主設定檔,有path, application, database 等設定
- urls.py : URL配置檔
- view.py : 本例中的存view function的地方
- wsgi.py : 網頁伺服器和Django的接口,是Django的進入點
- templates
- math.html
Django 第一個範例產生步驟
A. create a Django project
: django-admin.py startproject <網站名稱>
B. run the website
: python manage.py runserver
C. 設定一個頁面
- 設定urls.py : 功能是讓 Django 看到網域x就去呼叫函式y,網址是使用正則表達式來抓取
- 撰寫view function : 取得模版、填寫模版並做http回應,例如 return render_to_response('math.html',local())
[用心去感覺] 模版的用意
為了分離MTV架構中的 Template (你如何看到,也就是html/css) 和 View (呈現哪些資料),因此用templates資料夾專門裝模版。下面是模版成份的補充說明:
- 變量:{{sum}}
- 標籤:{% if real %}
- 注釋:{#this is comment#}
- 文字:text
程式碼
1. urls.py
1. urls.py
from django.conf.urls import patterns, include, url from django.contrib import admin from firstsite.views import here,compute urlpatterns = patterns('', # Examples: #url(r'^$', 'firstsite.views.home', name='home'), #url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), url(r'^here/$', here), url(r'^(\d{1,2})/math/(\d{1,2})/$', compute), )
2. views.py
from django.http import HttpResponse from django.shortcuts import render_to_response def here (request): return HttpResponse('hahaha my first webpage 哈哈哈我在這!!!') def compute (request, a, b): a = int(a) b = int(b) s = a+b d = a-b p = a*b q = a/b return render_to_response('math.html',locals())
3. math.html
<html> sum={{s}}<br> dif={{d}}<br> pro={{p}}<br> quo={{q}}<br> </html>
DEMO
References
書籍:It's Django-用Python迅速打造Web應用