使用Django+React学习编程基础(5):Django教程(投票应用程序1)

[Django+React]学习编程基础(4):开发环境搭建(Redux)

首先

我的开发环境已经准备好了。
我将开始实践Django官方教程。

创建Django应用程序(第一部分):投票应用程式

教程的内容

    • プロジェクトを作成

 

    • 開発用サーバーを起動/確認

 

    • 投票アプリを作成

 

    ビューを作成

应用程序结构

投票应用由两个部分组成

    • 公開用サイト

ユーザが投票/結果表示

管理(admin)サイト

投票項目の追加/変更/削除

事前准备

    VS Codeのターミナルで、仮想環境をアクティベート
C:\kanban>venv\.venv\Scripts\activate

(venv) C:\kanban>python -m django --version
    Djangoバージョンを確認
(venv) C:\kanban>python -m django --version  
4.0.5

创建项目

    • プロジェクトとは

Djangoインスタンスの下記設定を集めたもの

データベースの設定
Django固有オプション
アプリケーション固有設定

プロジェクトの名前

組み込みPythonモジュールやDjangoコンポーネントの名前と衝突しないように
NGパターン

django: Django自体の名前

test: 組み込みPythonパッケージ名

コードの置き場所

ドキュメントルートの外

例えば、/home/mycodeのような場所に置く

プロジェクト作成

(venv) C:\kanban>django-admin startproject pollsite
    プロジェクトのディレクトリ構成を確認
(venv) C:\kanban>cd pollsite
(venv) C:\kanban\pollsite>tree /F .
C:\KANBAN\POLLSITE
│  manage.py
│  
└─pollsite
        asgi.py
        settings.py
        urls.py
        wsgi.py
        __init__.py

文件的功能

C:\KANBAN\POLLSITE

プロジェクトのコンテナで、名前は任意

manage.py

コマンドラインユーティリティ

Djangoプロジェクトに対し、様々な操作を行う

pollsiteディレクトリ

プロジェクトのPythonパッケージで、importで使用する名前

例えば、import pollsite.urls

pollsite/__init__.py

空のファイル、PythonにこのディレクトリがPythonパッケージであることを知らせる

pollsite/settings.py

Djangoプロジェクトの設定ファイル

pollsite/urls.py

DjangoプロジェクトのURL宣言

pollsite/wsgi.py

WSGI(Web Server Gateway Interface)互換Webサーバーとのエントリーポイント

Pythonにおいて、Webサーバー/アプリケーションを接続するための、標準化されたインタフェース定義

pollsite/asgi.py

ASGI(非同期サーバーゲートウェイインターフェイス)互換Webサーバーのエントリポイント

Pythonにおいて、Webサーバー/フレームワーク/アプリケーション間の標準インターフェイスを提供

WSGIの後継

启动项目的开发服务器

    外側のpollsiteディレクトリで、以下コマンドを実行
(venv) C:\kanban\pollsite>python manage.py runserver
... ...
Django version 4.0.5, using settings 'pollsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
image.png

创建投票应用程序

给Django项目添加一个应用程序。

    • 所定規約に従ったPythonパッケージで構成される

 

    • Djangoのユーティリティで、基本的なディレクトリ構造を自動生成

コーディングに集中できる

应用程序的安装位置

    • Pythonパス上の任意場所

 

    • プロジェクトのトップレベルモジュールとしてインポート(サブモジュールではなく)

manage.pyファイルと同じディレクトリにアプリ作成

应用程序开发

    VS Codeで、新しいターミナルを開き、仮想環境をアクティベート
C:\kanban>venv\.venv\Scripts\activate

manage.pyファイルと同じディレクトリで、アプリ作成

(venv) C:\kanban>cd pollsite
(venv) C:\kanban\pollsite>dir
... ...
2022/06/05  18:06                 0 db.sqlite3
2022/06/05  16:38               686 manage.py
2022/06/05  18:06    <DIR>          pollsite
(venv) C:\kanban\pollsite>python manage.py startapp polls

pollsディレクトリ構成

(venv) C:\kanban\pollsite>tree /F polls 
... ...
C:\KANBAN\POLLSITE\POLLS
│  admin.py
│  apps.py
│  models.py
│  tests.py
│  views.py
│  __init__.py
│
└─migrations
        __init__.py

应用程序开发

将项目添加到VS Code中。

image.png

创建视图(名称:index)

polls/views.pyを開き、以下のPythonコードを記述

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")
image.png
    • URLconfを作成し、ビューを呼び出すためのURLを指定

pollsディレクトリにurls.pyファイル追加

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
image.png
    • ルートpollsiteのURLconfにpolls.urlsモジュールの記述を反映

pollsite/urls.pyで

django.urls.includeをインポート

urlpatternsのリストにinclude()を挿入

include()関数の機能

他のURLconfを参照可能
リクエストのURLから、現在位置までの部分を取り除き、残りの部分のみincludeされたURLconfへ渡す

こうすることで、URLを簡単にプラグ&プレイ可能に

pollsアプリは独自のURLconf(polls/urls.py)を持っているので
どのパスルート下に置いてもきちんと動作する

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
image.png

通过这个方法,您可以将索引视图和URL配置联系起来。

确认应用程序操作

    VS Codeのターミナルで、仮想環境をアクティベート
C:\kanban\pollsite>..\venv\.venv\Scripts\activate
    プロジェクトの開発サーバーを起動
(venv) C:\kanban\pollsite>python manage.py runserver
... ...
Django version 4.0.5, using settings 'pollsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
image.png

最后

在完成Django教程的过程中,我已经对基本知识有了一定的理解。下次我们将继续进行。敬请期待。

[下一次] 用Django+React学习编程基础 (6): Django教程 (投票应用程序之二)
广告
将在 10 秒后关闭
bannerAds