Table
安裝Django
首先在終端機上安裝pip套件
1 |
sudo apt-get install python-pip |
並利用pip套件來安裝Django,只需輸入兩個指令就輕鬆安裝完成囉!
1 |
pip install django |
創建Django骨架(project):
在終端機上輸入以下指令,系統就會自動建立您第一個專案,產生的目錄如下:
1 |
django-admin startproject Demo |
-- wsgi.py
- settings.py:包含所有的網站設置。這是可以註冊所有創建的應用的地方,也是靜態文件,數據庫配置的地方。
- urls.py:定義了網站url到view的映射。雖然這裡可以包含所有的url,但是更常見的做法是把應用相關的url包含在相關應用中。
- wsgi.py:幫助Django應用和網絡服務器間的通訊。
建立 Django application(app):
Django project是由多個app所組成,app代表是一個獨立運行的模組,當網頁架構龐大時,會建立不同的app來區隔並達成”do one thing and do it well”的設計理念,我們來看Django官方文件對這兩個定義的解釋:
What’s the difference between a project and an app? An app is a Web application that does something – e.g., a Weblog system, a database of public records or a simple poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects.
在了解什麼是Django app後,我們在終端機輸入指令進入 Demo 資料夾
1 |
cd Demo |
並且來建立第一個app並命名為 home
1 |
django-admin startapp home |
接下來為了讓 Django 知道我們有新增 home app,所以要在 setting.py 最下面加上 home
1 2 3 4 5 6 7 8 9 |
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'home', ] |
修改Demo資料夾內的urls.py:
在urlpatterns最下面新增path路徑,這是要讓使用者輸入網址/home時引導Django至home資料夾內的urls,所以接下來就是要創建home/urls.py檔案
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('home/', include('home.urls')), ] |
在home資料夾內新建urls.py:
可以看到這邊告訴Django,當使用者連到網址/home時,會去views.home這個檔案,所以接下來就是修改home/views.py
1 2 3 4 5 6 |
from django.urls import path from . import views urlpatterns = [ path('', views.home), ] |
修改home/views.py:
首先import render,它的功能是直接return render(request, ‘home/home.html’),就可以使用templates裡面的home.html;不然應該是要寫成 template = loader.get_template(‘home/home.html’),然後return HttpResponse(template.render(request))
1 2 3 4 |
from django.shortcuts import render,HttpResponse def home(request): return render(request, 'home/home.html') |
在home資料夾內創建templates/home/home.html:
將以下語法寫進html裡面
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class='container'> <h1>HOME</h1> <h2>Hello World!</h2> </div> </body> </html> |
在到Demo/Demo/settings.py內修改TEMPLATES 內的DIRS,告知Djanogo Templates路徑如下
1 |
'DIRS': [os.path.join(BASE_DIR, 'templates').replace('\\', '/')], |
最後在運行python manage.py runserver,就可以看到目前完成的頁面囉!
總結:Django的MTV架構
- Model : 描述你的資料類型
- Template : 使用者看到網頁的形式
- Views : 傳達資料(重點在於資料傳達的內容
當使用者點擊www.xxx.com/home頁面時,
- Django會去Demo資料夾內的urls.py尋找home的路徑
- 然後被導到home資料夾內的urls.py,會接收到views.home資訊
- 最後再從home/views.py中找到template渲染出home.html頁面
Django教學相關的延伸閱讀:
- [Django教學] 如何在Django網頁上運行python腳本
- [Django教學] 取得Django網頁資料並運行Python腳本
- [Flask教學] 簡單的GET和Post方法取得Flask網頁資料
Python教學相關的延伸閱讀:
- [Python教學] pip install 指令大全
- [Python教學] 寫給新手的 Python 入門基礎操作
- [Python教學] 使用 pyenv 和 virtualenv 打造 Python 環境配置
- [Git教學] 寫給Git初學者的入門 3 步驟
- Visual Studio Code 必備的 5 個擴充和小常識
那 [Django教學] 5分鐘快速入門,打造一個簡單Python網頁 就到這邊,感謝收看,有關Max行銷誌的最新文章,都會發佈在Max的Facebook粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!
在〈[Django教學] 5分鐘快速入門,打造一個簡單Python網頁〉中有 4 則留言
‘DIRS’: [os.path.join(BASE_DIR, ‘templates’).replace(‘\\’, ‘/’)],
NameError: name ‘os’ is not defined
HI 小米你好,
import os 就可以運行了唷
個人是個退休人士,想自學python
照書本所教試做卻遇到以下的錯誤訊息:django.urls.exceptions.NoReverseMatch: Reverse for ‘topics’ with arguments ‘(”,)’ not found. 1 pattern(s) tried: [‘topics/$’]
嗨嗨, reverse 的用法如下,看起來你是多一個逗號所以噴錯,希望對你有幫助
“`
reverse(
viewname,
urlconf=None,
args=None,
kwargs=None,
current_app=None
)
“`
實際例子:
“`
from django.urls import reverse
reverse(views.archive)
reverse(‘arch-summary’, args=[1945])
reverse(‘admin:app_list’, kwargs={‘app_label’: ‘auth’})
“`
留言功能已關閉。