Django

紀錄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

注意事項

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_deftest1.views當中的函數,用來處理頁面回傳response。

瀏覽 http://localhost:8000/test/ 查看結果

注意事項

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與返回結果

參考QuerySet API reference

常用函數

獲取內容

參考


Python Web Django