Django项目 – 应用程序启动的流程
在这篇文章中,我们将介绍Django项目和应用的启动方法。换句话说,我们将提供初始设置的解释。
アプリ開発での応用は、以下の記事を参考にする
Djangoアプリ開発(逆引き)
処理の流れ
プロジェクトを管理するdirを作成
仮想環境を構築
仮想環境にDjangoをinstall
プロジェクトを作成
アプリ作成
settings.pyの設定
マイグレーション
gitに登録する
Djangoサーバー起動
Django管理サイトにログイン
Appendix(付録)
RDBMS別のDB接続方法
创建一个用于管理项目的文件夹
$ cd Desktop
$ mkdir dir名
$ cd dir名
$ code .
- プロジェクトを管理するdirを作成
构建虚拟环境并安装Django。
$ python3 -m venv 仮想環境名
$ source 仮想環境名/bin/activate
$ pip install django
$ django-admin startproject プロジェクト名
$ cd プロジェクト名
-
- 仮想環境を構築
-
- 仮想環境内にDjangoをインストール
- プロジェクト立ち上げ
创建项目
python3 manage.py startapp アプリ名
- アプリ立ち上げ
settings.py 文件的配置
DEBUG = True # 本番環境(デプロイ環境)ではFalse
ALLOWED_HOSTS = ['*'] # 全てのホストを許可(本番環境では['*']にしてはいけない)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'アプリ名', # 追加
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR/'templates'], # 追加
'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',
],
},
},
]
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
ALLOWED_HOSTS:接続を受け付けるサーバを指定する環境変数
INSTALLED_APPS:作成したアプリを登録する環境変数
TEMPLATES:テンプレートの設定を行う環境変数
DIRS:テンプレートの検索対象とするフォルダをリストで指定。APP_DIRSより先に検索される
APP_DIRS:各アプリ内のtemplatesディレクトリをテンプレートの検索対象にするかを指定。デフォルトでTrueなので、settings.py内のINSTALLED_APPSに記載あるアプリから順にtemplatesフォルダを探索する
BASE_DIR:プロジェクトdir。つまり、manage.pyを格納しているディレクトリ
作成するアプリごとに、templatesディレクトリでまとめると整理しやすい
project_dir
├── env
└── project_dir <= BASE_DIR
├── accounts
├── app
├── peoject_dir
├── templates # 作成
├── db.sqlite3
└── manage.py
迁移
$ python3 manage.py migrate
- デフォルトのモデルをsqlite(RDBMS)のDB内のテーブルとして反映
将其注册到 Git 中。
# GitHubでリモートリポジトリを作成しておく
$ git init
$ git add . # ローカルリポジトリにステージング
$ git commit -m "コミットメッセージ" # ローカルリポジトリにコミット
$ git status # 開発ブランチの状態を確認
$ git remote add origin リモートリポジトリURL # ローカルリポジトリとリモートリポジトリを紐づける
$ git push origin master # リモートリポジトリにpush
-
- プロジェクトをgitで管理する
-
- git add .コマンドを用いてステージングする場合、manage.pyを含むdirまで移動してから実行すること
理由:git add –all と git add .の違い
启动Django开发服务器
$ python3 manage.py runserver
- 開発サーバ起動
登录Django管理网站
$ python3 manage.py createsuperuser
Emailは任意(空白でも可)
管理ユーザ名(スーパーユーザ)とそのユーザのパスワードは必須
トップページのURLの末尾にadmin/をつけてadminサイトにアクセス
作成した管理ユーザでログイン
Django管理サイトとは:
Djangoで作成したWebアプリケーションのデータを管理するためのサイト
つまり、Djangoにデフォルトで組み込まれているアプリの1つ
利用するのは主に管理者(Administrator)や開発者
管理サイトを通して、簡単にモデルに対応したテーブルのレコードを操作(CRUD:追加、削除、変更)することが可能
附录 (fù lù)
-
- デフォルトのsqliteにデータを保存している場合、全て消えるので注意
Userモデル内のデータも消えるので、再度createuerを実行する必要がある
最初からRDBMSに接続しておくことを推奨
python3 manage.py runserverを行う際は、RDBMSのサーバを起動しておく必要がある
连接到PostgreSQL数据库。
-
- PostgreSQL側
PostgreSQLサーバを起動
サーバに接続し、superuserであるpostgres(DB初期ユーザ)でDB(appdb)を作成
Django側
PostgreSQLに接続するためのライブラリを仮想環境内にインストール
settings.pyのDATABASESをsqlite3からPostgreSQLに修正
Django管理サイトのスーパーユーザを作成
マイグレーション
$ pg_ctl start -D ./django_project
$ createdb -U postgres appdb
※假设已经创建了DB集群
$ cd Desktop
$ pg_ctl initdb -D ./django_project
(env) $ pip install psycopg2
如果无法安装,请执行命令: (env) $ pip insatall psyconpg2-binary。
DATABASES = {
'default': {
'ENGINE':'django.db.backends.postgresql_psycopg2', # PostgreSQL使いますよ宣言
'NAME': 'appdb', # データベース名
'USER': 'postgres', # データベースに接続するDBユーザー名
'PASSWORD': 'password1', # データベースに接続する際のDBユーザのパスワード
'HOST': '', # 'localhost'
'PORT': '', # 5432
}
}
假设已在创建的DB集群(django_project)内创建了名为postgres的DB用户,并为postgres用户设置了密码。
$ psql -U postgres -d postgres
postgres=# ALTER USER postgres WITH PASSWORD ‘password1’;
PASSWORD:DBユーザのパスワードを指定。DB接続時の認証に使用される。「$ createuser user1 -P」コマンドによって、user1(DBユーザ)にパスワードを設定していない場合は、空白でも可。(おそらく)
HOST:接続するPostgreSQLサーバのIPアドレス、または’localhost’を指定。空白の場合、PostgreSQLの環境変数PGHOSTの値を使用する。PGHOSTを指定していない場合は、localhostに接続する
PORT:接続するPostgreSQLサーバのport番号を指定。空白の場合、PostgreSQLの環境変数PGPORTの値を使用する。PGPORTを指定していない場合は、5432に接続する
$ python3 manage.py createsuperuser
$ python3 manage.py migrate
-
- PostgreSQL側で
作成したデータがappdb内のテーブル(アプリ名_モデル名)に登録されている
SELECT * FROM アプリ名_モデル名;を実行するとデータが確認できる
Django的模型会成为PostgreSQL数据库中的表。 (Django de huì PostgreSQL de .)