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 .)

bannerAds