2015年9月9日 星期三

Django 的第一個範例:網址計算機

 

這個網址計算機呈現 Django 最簡易的網頁寫法,感謝「It's django」這本書的精美解說!簡單易懂:)




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. 設定一個頁面
  1. 設定urls.py : 功能是讓 Django 看到網域x就去呼叫函式y,網址是使用正則表達式來抓取
  2. 撰寫view function : 取得模版、填寫模版並做http回應,例如 return render_to_response('math.html',local())
* 記得在urls.py匯入你的view function




[用心去感覺] 模版的用意
為了分離MTV架構中的 Template (你如何看到,也就是html/css) 和 View (呈現哪些資料),因此用templates資料夾專門裝模版。下面是模版成份的補充說明:
  • 變量:{{sum}}
  • 標籤:{% if real %}
  • 注釋:{#this is comment#}
  • 文字:text



程式碼

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應用






技術提供:Blogger.