用Python和Django入门,试试做Django的教程!
目的 – Purpose
使用Django开发投票应用程序
应用名称:投票应用
(投票:Poll)
开始前的心情 de
我想试着做Django的教程!
我想要大致了解Django的使用方法!
我想要能够制作网站!
流动 (liú
①:进行Python和Django的环境设置(省略)
②:进行Django官方网站上的“初めてのDjango应用程序创建,第1步”(教程)
环境
PC: MacBook Pro 2021(M1 Pro)
操作系统:macOS Monterey(12.0)
虚拟环境:Anaconda
库安装:终端,pip
文本编辑器:VSCode
浏览器:Google Chrome
进行Django的”初次创建Django应用程序,第1步”(官方网站教程)- 1
马上开始进行 Django 的教程!首先,点击下面的网址!
首次创建 Django 应用程序,第一部分 – Django 官方文档(https://docs.djangoproject.com/ja/3.2/intro/tutorial01/)
1. 确认 Django 是否已安装在虚拟环境中
(仮想環境名) ~~~$ python -m django --version
3.2.9
创建项目。
利用CD命令将项目移动到想要的文件夹中。
(仮想環境名) ~~~$ cd 〜〜〜
创建项目(我的网站:自定义)。
※ 项目名称(本次使用mysite)不要使用django或test之外的任何名称。如果使用与Python模块和Django组件相同的名称,则可能会发生错误。
(仮想環境名) ~~~$ django-admin startproject mysite
3. 确认文件结构
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
请确认文件名和角色
-
- manage.py : Django プロジェクトに対する様々な操作を行うためのコマンドラインユーティリティです。詳しくは django-admin と manage.py 内の manage.py を参照してください。
-
- 内側の mysite/ ディレクトリは、このプロジェクトの実際の Python パッケージです。この名前が Python パッケージの名前であり、 import の際に 使用する名前です (例えば import mysite.urls) 。
-
- init.py :ほとんど触ることはないため、無視していい。Python関連のパッケージをインポートする際に読み込まれる初期化ファイル。
-
- asgi.py :必要となる機会は少ない? Djangoにリアルタイムな双方向通信機能を持してデプロイ/稼働する際に必要となる。
-
- settings.py :よく使う。プロジェクトのディレクトリ指定や各ファイルの指定、その他プロジェクトに関するすげての設定がここで記述される。
-
- urls.py :プロジェクトのルーティングを設定するために使用する。各アプリケーションにそれぞれurls.pyを手動で追加し、各アプリケーション内のurls.pyに読み込んで、プロジェクト全体のルーティングを記述する。書き方はほぼ定型となっている。
-
- wsgi.py :Djangoを デプロイ/稼働 する際に必要となる。
- manage.py :Djangoの全てのプログラムのトリガーとして使用する。アプリケーションを追加する場合やDBを更新する場合は必ず記述を行う。
5. 运行服务器
使用cd命令切换到manage.py所在的文件夹。
输入以下命令以启动服务器
※ 忽略警告
$ python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
November 13, 2021 - 11:54:39
Django version 3.2.9, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
※ 这个服务器仅仅是为了开发而设计的,请不要在生产环境中使用(我们是Web框架专家,而不是Web服务器)。
赠品
如果想要更改端口号,请输入以下命令。
本次将指定端口号为8000。
$ python manage.py runserver 8000
6. 请确认服务器是否在运行。
请访问本地主机,并确认服务器是否正在运行。
如果正常运行的话,会显示如下图所示。
当显示下图时,项目创建成功。
接下来让我们来创建一个应用程序(PollApp)!!!
「项目与应用的区别是什么?应用是指进行某种操作的网络应用程序,例如博客系统、公共记录数据库、小型投票应用等。而项目是指特定网站的结构和应用集合。一个项目可以包含多个应用,而一个应用可以存在于多个项目中。」
进行Django的“Django初次应用开发,第1部分”(官方网站上的教程) – 2。
创建应用程序文件夹(PollApp)。
请进入包含manage.py文件的目录,并输入应用程序创建命令。
运行以下命令在python中创建一个新的应用程序:’python manage.py startapp 应用程序名称’
$ python manage.py startapp PollApp
确认应用程序的文件结构
PollApp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
3. 确认文件的名称和作用 de hé
-
- init.py :ほとんど触ることはないため、無視していい。Python関連のパッケージをインポートする際に読み込まれる初期化ファイル。
-
- admin.py :管理画面で表示するデータの設定や機能追加を行う。(Djangoではプロジェクトの作成と同時に自動でデータの管理画面が作成される) 管理者画面の立ち位置のため、会員登録機能などで作られる “ユーザー” では関与することができない。スタッフ権限を持ったユーザーのみがログインして閲覧できる。
-
- apps.py :アプリケーションの設定を記述することでプロジェクトのsetting.pyで読み込めるようにしている。デフォルトで必要なコードが記述されているため、ほとんど触れることはない。
-
- models.py :DBに登録するテーブルを記述していく。基本的にClassベースで記述を行い、最終的にmigrateというアクションでデータ構造をDBに登録する。
-
- tests.py :Djangoの持つユニットテスト機能を行える。開発で使用しているDBとは別にダミーのDBを立てることができ、それを使用してテストを行う。
-
- views.py :最重要 Djangoプロジェクトの中核を担う。バックエンドとなるファイル。このファイルに、models.pyからClassを読み込んだり、各種パッケージ機能などを読み込んだりしながらhtmlファイルの設定や投げるデータの登録、バックエンドとしての機能を持たせることができる。
- ( urls.py ) :手動でアプリケーションフォルダ内に作成することが多い。ここで、views.pyで作成したClassまたは関数を読み込んでアプリケーション内のルーティングを登録する
4. 写代码前的确认
如果在VSCode的终端中执行程序的话,这是必须的,如果其他情况可以跳过。筆者打算不使用VSCode的终端。
创建一个视图
在PollApp文件夹的views.py中添加以下代码来描述View。
from django.http import HttpResponse
def index(request):
// 文字列 "Hello, world. You're at the polls index." が画面に表示される
return HttpResponse("Hello, world. You're at the polls index.")
需要为应用程序设定URL吗?
为了显示View,需要将URL进行对应。
在PollApp文件夹内新建一个urls.py文件。
PollApp的文件夹结构。
PollApp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py ←------------------- NEW!
views.py
在PollApp/urls.py中添加以下代码
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
为了反映PollApp.urls模块的设定,需要在mysite/urls.py中添加下面的代码。
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('PollApp/', include('PollApp.urls')),
path('admin/', admin.site.urls),
]
请确认path()的参数。
path() 函数有四个参数: route、view、kwargs 和 name。
其中,route 和 view 在调用 path() 时是必需的。
哎?但是,在5号行的mysite/urls.py文件中添加的代码里没有route或者view这样的代码呀?
没错。
可以不必写出 route、view、kwargs 和 name 这些参数名,可以像使用 5 中描述的 path(・・・) 方法一样。
然而,你肯定想要确认每个参数传递了什么样的数据。现在让我们使用代码来确认一下。
如果要使用参数名指定参数,请使用path参数,代码如下所示。
如果不传递任何数据,则传递””。
路径(路由=“PollApp/”,视图=包括(“PollApp.urls”),参数=“”,名称=“”)
→ 路径(路由=①,视图=②,参数=③,名称=④)
我将对1至4进行解释。
-
- ① route :”test_route1/test_route2/” のようにURLパターンを含む文字列。「リクエストを処理するとき、Django は urlpatterns のはじめのパターンから開始し、リストを順に下に見ていく。要求された URL を一致するものを見つけるまで各パターンと比較する。」
-
- ② view :表示するView(Viewの関数)の指定。Viweを呼び出すときにはキーワード引数として、View関数へrouteの文字列が渡される。「Django がマッチする正規表現を見つけると、 Django は指定されたビュー関数を呼び出す。その際 HttpRequest オブジェクトを第一引数に、そしてキーワード引数としてrouteから「キャプチャされた」値を呼び出す。」
-
- ③ kwargs :任意のキーワード引数を辞書として対象のViewに渡せる。チュートリアルでは使わない。
- ④ name:URLに名前付けが行える(→筆者 2021_1114時点で 詳しくは理解していない)「URL に名前付けをしておけば Django のどこからでも明確に参照でき、とくにテンプレートの中で有効。この便利な機能のおかげで、プロジェクトのURLにグローバルな変更を加える場合にも1つのファイルを変更するだけで済むようになる。」らしい
7. 确认所创建的视图是否正常显示。
添加代码到6部分,并在终端输入下面的命令。
$ python manage.py runserver
访问下面的URL链接
确认画面
成功!
第一教程已经结束。
做得好!一旦完成教程2,就会发布文章。
请参考:
解释项目文件中的程序/应用程序内的程序。