紀錄Django安裝、新增專案以及使用方式等。
安裝
# pip
pip install django
# archlinux
sudo pacman -S python-django
使用
操作基本上透過manage.py
去做管理。
建立專案
建立專案,指令的project_name
為創造出來專案的名子。
django-admin startproject project_name
參見 Docs
啟動伺服器
python manage.py runserver
預設伺服器在 http://127.0.0.1:8000/ 執行
建立app
建立app,指令的app_name
為app的名子。
python manage.py startapp app_name
Python Shell
透過專案的環境變數啟動python
python manage.py shell
注意事項
- 確保使用的Python版本與Django互相對映。
Templates
reader()的context
可以將Key: value
(dict)對映到網頁上。
在模板的html檔案裡面加入{{key}}
,views.py會
透過render()
相對映的值。
views.py
位於所在的app
。
from django.shortcuts import render
# Create your views here.
def view_def(request):
return render(request, 'template.html', {
'key': "value",
})
template.html
位於資料夾templates
,新專案可能需要自己建立一個資料夾。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{key}}
</body>
</html>
urls.py
在urlpatterns
定義一個路徑處理。
from django.contrib import admin
from django.urls import path
from test1.views import view_def
urlpatterns = [
path('admin/', admin.site.urls),
path('test/', view_def)
]
view_def
是test1.views
當中的函數,用來處理頁面回傳response。
瀏覽 http://localhost:8000/test/ 查看結果
注意事項
template
可能會因為沒有調整正確的DIRS
會出現問題, 調整settings.py
當中的TEMPLATES
。'DIRS': [os.path.join(BASE_DIR, 'templates')]
Models
透過models.py
定義表格。
建立表格
from django.db import models
# Create your models here.
class TestTable(models.Model):
name = models.TextField(default="jack")
bio = models.TextField(default="")
date = models.DateTimeField(auto_now=True)
class Meta:
db_table = "test_table"
更新資料庫
python manage.py makemigrations
python manage.py migrate
QuerySet與返回結果
常用函數
filter()
找出符合條件的entry,回傳QuerySet
get()
取得指定的entrycreate()
建立新的entryupdate()
更新QuerySet
所有entrydelete()
刪除entryall()
取得所有entry,回傳QuerySet
獲取內容
- 直接用陣列選取entry(models)並且選取欄位**(建議)**
- 透過
values()
轉換成list
與dict
的格式 - 獲取內容:
欄位內容 = entry.欄位名
參考
Python Web Django