建立專案
在終端機中按下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>