CODE‎ > ‎Python‎ > ‎

Django

首先安裝完Python及Django

找個你要存放網站的目錄下指令 django-admin.py startproject <網站名> (例如:Dtest)
得到一個目錄4個檔案
Dtest/
    __init__.py
    manage.py
    settings.py
    urls.py

在Dtest目錄下執行 python manage runserver 後 http://127.0.0.1:8000 就會看到It's Work!網頁

簡單幫他掛上一個Helloworld網頁,新增一個 Dtest/views.py 檔案
from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world")

有這個檔案還不會有反應,必須告訴系統去哪裡執行他,所以要編輯urls.py,所有網頁的路徑配制都歸他管
from views import hello   把剛才views.py裡的hello導入
在 urlpatterns = patterns( 裡加上 ('^hello/$', hello), 就是告知 http://1270.0.1:8000/hello 就去執行views.py內的hello
就能看到 Hello world 網頁

接下來要幫這個網站加上一個books子功能,下指令 python manage.py startapp books
得到一個子目錄跟4個檔案
books/
    __init__.py
    models.py
    views.py
    tests.py

這裡會運用到資料庫,所以要編輯 Dtest/settings.py 
DATABASES = {
    'default': {
        'ENGINE': 'sqlite3',    #使用sqlite3
        'NAME': 'Dtest.db',   #資料庫位置
......

更改語言 LANGUAGE_CODE = 'zh-TW'
在 INSTALLED_APPS = ( 裡掛上剛才的子功能 'Dtest.books', 這樣系統就知道你有一個books子功能了

接下來下指令來讓系統依settings.py的設定來配置資料庫 python manage.py syncdb

編輯 books/models.py
from django.db import models

class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()

以上就是設定books的資料結構,如果不知道以上代表啥意義,下指令 python manage.py sqlall books 就會看到一堆SQL碼,但實際上並還沒在資料庫建立那些結構,必須再一次 python manage.py syncdb
接下來掛上Admin管理系統
將'django.contrib.admin'加入setting的INSTALLED_APPS配置中(順序是沒有關係的),告知系統我沒加入了Admin管理子功能,到此還是不能從網頁上看到,還必須在urls.py內 urlpatterns = patterns( 加上 (r'^admin/', include(admin.site.urls)), 後http://127.0.0.1:8000/admin 就能看到登入畫面了,以superUser登入

但到此只會看到 使用者/群組/網站 三個選項而以
編輯 books/admin.py
from django.contrib import admin
from Dtest.books.models import Publisher, Author, Book

admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)
就會看到books/models.py內的結構全被納入管理了(如果重新整理後還是沒看到請重啟SERVER)





Comments