---
# System prepended metadata

title: Django 建構
tags: [NTPUQA]

---

# Django 建構_20241008

## 建構步驟
1. 建立資料夾，用 VScode 開啟
2. 建構虛擬環境
```
python3 -m venv django_venv 
// django_venv 是虛擬環境名稱，可自行命名
```
進入虛擬環境 macOS
```
source django_venv/bin/activate
// django_venv 是虛擬環境名稱
```
進入虛擬環境 Windows
```
django_venv\Scripts\Activate
// django_venv 是虛擬環境名稱
```
退出虛擬環境
```
deactivate
```
3. 建構 django 環境
```
pip install django
```
檢查版本
```
python3 -m django --version
```

4. 建構 django project
```
django-admin startproject djangoTest
// djangoTest 是 project 名稱，可自行命名
```
移動至該資料夾內
```
cd djangoTest
// djangoTest 是 project 名稱
```
5. 執行
```
python3 manage.py runserver
```
進入下方顯示的"http://127.0.0.1:8000/"
顯示 django 網頁即表示成功

## first with html
新增一個 templates 資料夾，與 manage.py 同層
新增 hello.html
```htmlembedded=
<!DOCTYPE html>
<html>
    <head>
        <title>I come from template!!</title>
        <style>
            body {
               background-color: lightyellow;
            }
            em {
                color: LightSeaGreen;
            }
        </style>
    </head>
    <body>
        <h1>Hello World!</h1>
        <em>{{ current_time }}</em>
    </body>
</html>
```
新增一個 app
```
python manage.py startapp myapp
//myapp 是 app 名字，可自己命名
```
project/setting.py

新增 app 名稱
```python=
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]
```
project/setting.py
新增 templates 設定
```python=
import os
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates').replace('\\', '/')],
        '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',
            ],
        },
    },
]
```

app 中 views.py
```python=
from django.shortcuts import render
from datetime import datetime
#新增 datetime 的功能


# Create your views here.
def hello(request):
    return render(request, 'hello.html', {
        'current_time': str(datetime.now()),
        #呼叫回傳
    })
```

app 中 urls.py
```python=
from myapp import views

urlpatterns = [
    path('', views.hello, name='hello'),
]
# '' 是指原網址後加什麼會到 views(myapp) 中的 hello func 所指導的頁面（hello.html）
```
```
❯ python3 manage.py runserver
```
