# 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
```