回上方

建立專案

在終端機中按下Ctrl+C中斷程式執行,回到命令提示模式。

(1)在終端機中下達指令建立一個新的專案

django-admin.py startproject mysite

打完指令後,會產生一個mysite的資料夾

mysite/
    manage.py
    mysite/
        __init__.py
       settings.py
       urls.py
       wsgi.py               

(2)修改mysite/mysite/settings.py,設定伺服器資料與時區。

ALLOWED_HOSTS = ['*'] TIME_ZONE = 'Asia/Taipei'

(3)啟動 django

cd mysite python manage.py runserver 0:80

(4)在終端機會看到以下的訊息

(5)django網站畫面如下:

建立應用程式

我們要建立一個圖文展示的應用程式

python manage.py startapp show

下了這個指令後,會在mysite底下新增一個show資料夾,檔案結構如下:

mysite/ manage.py mysite/ show/ migrations/ __init__.py admin.py apps.py models.py tests.py views.py

修改mysite/settings.py以註冊應用程式 第8行

INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'show', )

要完成一個可以回應給使用者的畫面,需要有兩個步驟:

(1)設定網址(urls.py)

(2)撰寫視圖函式(views.py)

打開 mysite/mysite/urls.py 裡面已有的設定如下:

from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]

新增程式碼 第3,7行

from django.contrib import admin from django.urls import path from show import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.homepage), ]

打開mysite/show/views.py 修改為以下程式碼。

# -*- coding: UTF-8 -*- from django.shortcuts import render from django.http import HttpResponse def homepage(request): return HttpResponse('歡迎光臨我的網站')

試著打開你的網站看看結果。

python manage.py runserver 0.0.0.0:80

使用模版

(1)建立模版目錄

templates

(2)修改mysite/mysite/settings.py 第4行

TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['./templates',], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]

(3)在模版目錄中建立網頁模版 index.html

<html> <head> </head> <body> 歡迎光臨我的網站 </body> </html>

(4)修改mysite/show/views.py

from django.shortcuts import render_to_response def homepage(request): return render_to_response('index.html')

餐廳網站

(1)建立靜態圖片目錄 mysite/static/images

修改mysite/settings.py,新增以下程式碼:

STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]

(2)上傳圖片到目錄中。

food1.png

food2.png

food3.png

(3)修改 mysite/mysite/urls.py  第6-7,11,12行

from django.contrib import admin from django.urls import path from show import views urlpatterns = [ path('admin/', admin.site.urls), path('', views.homepage), path('food', views.food), ]

(4)修改 mysite/template/index.html 第6-8行

<html> <head> </head> <body> 歡迎光臨我的網站<BR> <a href="/food/1">1號餐<BR> <a href="/food/2">2號餐<BR> <a href="/food/3">3號餐<BR> </body> </html>

(6)打開 mysite/show/views.py,修改為以下程式碼:

# -*- coding: UTF-8 -*- from django.shortcuts import render_to_response def homepage(request): return render_to_response('index.html') def food(request, kind): return render_to_response('food.html', {'kind':kind})

(6)新增 mysite/templates/food.html

<html> <head> </head> <body> 您點的是{{kind}}號餐<BR> <img src="/static/images/food{{kind}}.png"> </body> </html>