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

django_coverphoto

安裝Django

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

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

創建Django骨架(project):

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

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

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

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

修改Demo資料夾內的urls.py:

在urlpatterns最下面新增path路徑,這是要讓使用者輸入網址/home時引導Django至home資料夾內的urls,所以接下來就是要創建home/urls.py檔案

 

在home資料夾內新建urls.py:

可以看到這邊告訴Django,當使用者連到網址/home時,會去views.home這個檔案,所以接下來就是修改home/views.py

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

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

將以下語法寫進html裡面

在到Demo/Demo/settings.py內修改TEMPLATES 內的DIRS,告知Djanogo Templates路徑如下

最後在運行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粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

在〈[Django教學] 5分鐘快速入門,打造一個簡單Python網頁〉中有 4 則留言

  1. ‘DIRS’: [os.path.join(BASE_DIR, ‘templates’).replace(‘\\’, ‘/’)],
    NameError: name ‘os’ is not defined

    1. 嗨嗨, 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’})
      “`

發佈留言

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