iT邦幫忙

1

Django學習紀錄 3.Django介紹與安裝 4.建置與環境設定[使用VS code作為開發環境]

之前有在用Django寫一些小網站,現在暑假想說再來複習一下之前買的這本書
https://ithelp.ithome.com.tw/upload/images/20190724/20118889bj9fH1vhuR.jpg
於是我就把它寫成一系列的文章,也方便查語法
而且因為這本書大概是2014年出的,如今Django也已經出到2.多版
有些內容也變得不再支援或適用,而且語法或許也改變了
所以我會以最新版的Python和Django來修正這本書的內容跟程式碼

目錄:django系列文章-Django學習紀錄

3. Django介紹與安裝

建議先看過

使用VS code建置環境並執行python程式

以及虛擬環境使用方法

Django學習紀錄 2.Python的模組與套件[附virtualenv虛擬環境使用教學]

3.2.2 利用git下載

git clone [github專案網址]

這個git指令可以直接複製專案到當前位置

4. 建置與環境設定

[使用VS code作為開發環境]

開啟命令提示字元,切到欲建立專案資料夾的目錄

virtualenv myproject

建立虛擬環境 myproject
如果還沒安裝virtualenv這個套件那就用以下指令安裝

pip install virtualenv

虛擬環境建好後,開啟VS code->檔案->開啟資料夾->開啟 myproject 資料夾
在終端機中輸入以下指令

Scripts\activate.bat

進入myproject虛擬環境
接著安裝這幾個套件

pip install django pylint pylint_django autopep8

在專案根目錄 myproject 下建立一個資料夾 .vscode
在 .vscode 資料夾下建立一個檔案settings.json
並輸入程式碼

{
    "python.pythonPath": "Scripts\\python.exe",
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.linting.pylintArgs": [
        "--load-plugins=pylint_django",
    ],
    "files.trimTrailingWhitespace": true, // 儲存的時候,會幫你自動過濾多餘的空格
    "files.autoSave": "onFocusChange", // 是否自動儲存檔案
    "[python]":{
        "editor.formatOnType": true,
        "editor.formatOnSave": true,
        "editor.renderIndentGuides": true,
        "editor.insertSpaces": true,
        "editor.detectIndentation": true,
        "editor.tabSize": 4
    },
}

這些設定讓pylint會自動幫我們除錯
以及每當你打完一行python程式碼按Enter跟每次存檔時,VS code會自動幫我們的程式碼排版
同時我們也要安裝這幾個 VS code 的延伸模組
Python
code runner
Django
Django Template
https://ithelp.ithome.com.tw/upload/images/20190712/20118889Jkn86hN0Ls.png
https://ithelp.ithome.com.tw/upload/images/20190713/201188898m8mChpcOA.png
https://ithelp.ithome.com.tw/upload/images/20190712/20118889NIqQ2ls8DS.png
https://ithelp.ithome.com.tw/upload/images/20190712/201188892JwpYGg5cO.png
在專案根目錄myproject下建立一個python檔,隨便打個程式碼
接著按左下角,確認有選到目前的虛擬環境下的python路徑 "Scripts\python.exe"
https://ithelp.ithome.com.tw/upload/images/20190712/20118889rhZ1AZHwVs.png
確認好python程式可以正常執行,pylint和程式碼自動排版也可以正常運作後
在終端機中輸入指令

django-admin.py startproject mysite

切到 mysite 資料夾

cd mysite

啟動django內建伺服器

python manage.py runserver

在出現的連結網址上按Ctrl+左鍵就能開啟網頁
https://ithelp.ithome.com.tw/upload/images/20190714/20118889B5st4ij2pA.png
就能看見我們的網頁成功運行了 ~
https://ithelp.ithome.com.tw/upload/images/20190712/2011888991owTLYJtO.png

4.2 進行環境設定 - 利用settings.py

讓我們來看看 mysite\mysite 目錄下的 settings.py 這個檔案

4.2.1 路徑(Path)設定

專案的基本路徑設置,專案裡頭只要跟路徑有關的一律是從這個位置當起始點

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

在python中,__file__指的是當下該命令稿的檔名,而

os.path.abspath()

會找出該檔所在的路徑

os.path.dirname()

會找出該檔所在目錄的路徑
連續使用兩次也就是代表了上層的mysite目錄
所以專案的基本路徑即為從上層的mysite這個目錄開始
以後如果要設置任何的路徑只要使用專案路徑(BASE_DIR)來串接新的目錄名稱即可

import os
from django.conf import settings
[路徑變數] = os.path.join(settings.BASE_DIR, [底下的新的目錄])

接下來我們在上層mysite中建立一個放置html模板的目錄: templates
接著在settings.py當中找到這個並設置'DIRS'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, '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',
            ],
        },
    },
]

4.2.2 除錯模式設定

在settings.py中找到

DEBUG = True

在開發階段將這個設為True才能清楚的看到錯誤訊息
當網站正式上線之後,可能就要把這個設為False

4.2.3 Application 安裝

我們可以找到

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

這個是django內建的APP

4.2.4 根 URL 配置

ROOT_URLCONF = 'mysite.urls'

預設的URL配置檔

4.2.5 資料庫設定

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

4.2.6 語言與時區

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

改為

LANGUAGE_CODE = 'zh-Hant'

TIME_ZONE = 'Asia/Taipei'

把語言改成中文,並將時區改為台灣的時區
重新執行伺服器,我們就會看到中文介面囉
https://ithelp.ithome.com.tw/upload/images/20190712/20118889GXqKEQDzdy.png
如果想要退出回到終端機
只需要在上面按Ctrl+C或Ctrl+Pause Break就可以了
命令提示字元和終端機執行指令時如果想要中斷並退出也是按Ctrl+C

上一篇:Django學習紀錄 2.Python的模組與套件

下一篇:Django學習紀錄 5.視圖與URL[附正規表達式的重點整理]


尚未有邦友留言

立即登入留言