iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

Django 初學入門 - 從 ROR 的角度來學習 Django系列 第 4

DAY4 - 快速生成 Django 基礎應用程式架構

  • 分享至 

  • xImage
  •  

第一個 Django 的資料夾

昨天已經把虛擬環境建立完成,今天就趕快來產生我們的第一個 Django 資料夾
貼心小提醒,每一次重開檔案,都要進入確認有進入虛擬環境喔,我這邊就不重複輸入指令了

1. 安裝 Django

首先確認自己有在昨天新增的 djangoBoy 資料夾中

$ pwd

------
# /Users/使用者ID/Desktop/djangoBoy

確定自己在虛擬環境裡面後,在虛擬環境中安裝 django

$ pip install django

------
Collecting django
  Using cached Django-4.2.4-py3-none-any.whl (8.0 MB)
Collecting asgiref<4,>=3.6.0 (from django)
  Using cached asgiref-3.7.2-py3-none-any.whl (24 kB)
Collecting sqlparse>=0.3.1 (from django)
  Using cached sqlparse-0.4.4-py3-none-any.whl (41 kB)
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.7.2 django-4.2.4 sqlparse-0.4.4

2. 檢查是否安裝成功

看到 Django 就代表成功安裝

$ pip list

------
Package    Version
---------- -------
asgiref    3.7.2
Django     4.2.4
pip        23.1.2
setuptools 65.5.0
sqlparse   0.4.4

3. 創建基礎骨架

$ django-admin startproject store

這個語法就類似 ROR 的 rails new product_name,他會一次幫你生出很多預設的基礎檔案


4. 確認是否建立成功

那個 store 就是我們剛剛建立的基礎骨架資料夾,我們進去看一下剛剛那個指令都幫我生成了哪些檔案

$ ls

------
store      virtualenv

5. 檢視剛剛生成的檔案

打開資料夾,可以發現新生成的檔案架構長下面這樣

store/
    manage.py
    store/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

這些目錄和文件的用途是:

  • 最外層的 store/ 根目錄只是你項目的容器,根目錄名稱對 Django 沒有影響,你可以將它重命名為任何你喜歡的名稱。
  • manage.py: 一個讓你用各種方式管理 Django 項目的命令工具。你可以閱讀 django-admin 和 manage.py 了解 manage.py 的所有功能。
  • 內層的 store/ 資料夾包含你的項目,它是一個純 Python package。它的名字就是當你引用它內部任何東西時需要用到的 Python package。
  • store/init.py:一個空文件,告訴 Python 這個目錄應該被認為是一個 Python package。
  • store/settings.py:Django項目的配置文件,此專案的基礎設定都在這邊完成,像是整個專案的語言和時區之類的。
  • store/urls.py:Django 項目的 URL 設定。
  • store/asgi.py:為你的項目的運行在 ASGI 包含的 Web 服務器上的入口。
  • store/wsgi.py:為你的項目的運行在 WSGI 包含的 Web 服務上的入口。

6. 開啟 server

最後就來實際啟動 server

$ cd store
$ python3 manage.py runserver 

------
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 24, 2023 - 07:43:13
Django version 4.2.2, using settings 'store.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

記得要先進到裡面一層,再輸入 runserver 才會開啟本地伺服器喔!有沒有發現這個指令就是去呼叫 manage.py,還記得我們前面說 manage.py 的功能嗎?他就是在幫我們執行一些指令!!

執行後,你應該會在終端機看到一些提示字,主要是在建議你執行一些指令,這個我們等等再說,在瀏覽器輸入 http://127.0.0.1:8000/ 應該可以看到一個火箭準備飛天的護面,就代表成功啟動 server

7. 具現化表單

這個如果是初學者,可能會不知道我們在幹嘛,先不用急,我們之後在 model 那邊再提到一次,不過如果是上過之前有寫過 ROR 的,應該很清楚我們接下來要做的事情~

還記得剛剛啟動 SERVER 他有給你一串資訊嗎?如果有仔細看的人,應該知道他其實就是在跟你說,你現有幾個 migration 尚未具現化,所以他在提醒你要記得執行,這邊會有這們多的未執行的 migration 是因為一開始我們那一道指令 django-admin startproject store,他幫你一起產生的

具現化指令

$ python3 manage.py migrate

------
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

Ps. 這時候你在重新啟動 Server 的話,就會發現剛剛的訊息不見了~


這指令其實就像 rails db:migrate 一樣,可以直接生成一大堆表單,不過 Django 的表單生成,其實是兩步驟,原因我們到 model 那一章節再說~


總結

今天學到哪些東西呢?

  1. 如何創建 Django 基礎骨架
  2. 基礎骨架資料夾的作用
  3. 如何啟動 Django Server
  4. Django 如何具現化表單

最後附上 Github: https://github.com/eagle0526/Django-store
之後每天的程式修改我都會更新上去,想要的人直接下載下來就好


上一篇
DAY3 - Django 環境建置 - pyenv 和 virtualenv 設定
下一篇
DAY5 - Django 的 Hello World
系列文
Django 初學入門 - 從 ROR 的角度來學習 Django30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言