07 Python Django 教學10 所有文章

[Django教學] 5分鐘快速入門,打造一個簡單Python網頁

django_coverphoto

安裝Django

首先在終端機上安裝pip套件

sudo apt-get install python-pip

並利用pip套件來安裝Django,只需輸入兩個指令就輕鬆安裝完成囉!

pip install django

創建Django骨架(project):

在終端機上輸入以下指令,系統就會自動建立您第一個專案,產生的目錄如下:

django-admin startproject Demo
|– Demo
|   |– __init__.py
|   |– settings.py
|   |– urls.py
|   `– wsgi.py
`— manage.py
 
簡單的介紹一下
  1.  settings.py:包含所有的網站設置。這是可以註冊所有創建的應用的地方,也是靜態文件,數據庫配置的地方。
  2. urls.py:定義了網站url到view的映射。雖然這裡可以包含所有的url,但是更常見的做法是把應用相關的url包含在相關應用中。
  3. wsgi.py:幫助Django應用和網絡服務器間的通訊。

建立 Django application(app):

Django project是由多個app所組成,app代表是一個獨立運行的模組,當網頁架構龐大時,會建立不同的app來區隔並達成”do one thing and do it well”的設計理念,我們來看Django官方文件對這兩個定義的解釋:

Projects vs. apps

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 資料夾

cd Demo

並且來建立第一個app並命名為 home

django-admin startapp home

接下來為了讓 Django 知道我們有新增 home app,所以要在 setting.py 最下面加上 home

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檔案

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

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))

from django.shortcuts import render,HttpResponse

def home(request):
    return render(request, 'home/home.html')

在home資料夾內創建templates/home/home.html:

將以下語法寫進html裡面

<!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路徑如下

'DIRS': [os.path.join(BASE_DIR, 'templates').replace('\\', '/')],

最後在運行python manage.py runserver,就可以看到目前完成的頁面囉!

 

總結:Django的MTV架構

  1. Model : 描述你的資料類型
  2. Template : 使用者看到網頁的形式
  3. Views : 傳達資料(重點在於資料傳達的內容

當使用者點擊www.xxx.com/home頁面時,

  1. Django會去Demo資料夾內的urls.py尋找home的路徑
  2. 然後被導到home資料夾內的urls.py,會接收到views.home資訊
  3. 最後再從home/views.py中找到template渲染出home.html頁面

Django教學相關的延伸閱讀:

Python教學相關的延伸閱讀:

那 [Django教學] 5分鐘快速入門,打造一個簡單Python網頁 就到這邊,感謝收看,有關Max行銷誌的最新文章,都會發佈在Max的Facebook粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *