LinuxでDjangoアプリケーションを作成する手順を覚えてください.


0環境と目標
0.1環境
  • サーバ側
  • オペレーティングシステム:Ubuntu 14.04.2 LTS
  • 運転時:Python 3.4.0
  • クライアント
  • ブラウザ:Firefox 37.10.1
  • データベースクライアント:Navicat Premium 11.1.10

  • 0.2ターゲット
    サーバー側でDjangoプロジェクトを開始し、PostgreSQLデータベースを採用します.
    0.3ポイント
  • Django取付
  • PostgreSQLインストール
  • Django初期化データベース
  • Djangoサービス
  • を開始
    1実施
    1.1 Django準備
    1.1.1 Djangoのインストール
    ここに最新のDjangoをインストールします
    $sudo pip3 install django
    

    Djangoを既存のベースでアップグレードしてインストールする場合は、次のコマンドを入力します.
    $sudo pip3 install django --upgrade
    

    pipは古いバージョンのDjangoをアンインストールして最新版をインストールします.なお、ここで使用するコマンドはsudo pip3であり、単純にpipを使用するのではなく、virtualenv環境でインストールされていないため、すべての操作はオペレーティングシステムの実環境で完了しているが、UbuntuのデフォルトのPython環境はPython 2であり、多くのシステムベースソフトウェアはこのバージョンのPythonに基づいて開発されている.強制的にデフォルトに変更するとPython 3はいろいろな卵が痛い場合に遭遇します(なぜ知っているのか聞かないでください).この方式を採用したのは、ここは私個人が練習したプロジェクトにすぎず、生産的な意味がなく、サボって隔離制御を厳格にしていないからだ.生産上の開発導入では、複数のバージョンが並列に使用されることがよくありますが、実際の状況に応じて開発と生産環境を構成する必要があります.ここでは詳細な議論はしません.
    1.1.2 Djangoプロジェクトの作成
    ここではまずteamteaというプロジェクトを作成します
    $cd workspace/django
    $django-admin starproject teamtea
    

    そう、Djangoのエンジニアリング管理コマンドdjango-adminを直接使用できるようになりました.ここでは、プロジェクトを作成してから片側に置いて、後で構成します.
    1.2 PostgreSQL準備
    1.2.1 PostgreSQLのインストール
    Ubuntu公式ソースのPostgreSQLはいつも小さなバージョンが遅く、バージョン管理が不快なので、公式サイトの説明に従って最新版をインストールしました.まず、PostgreSQLの公式ソースをaptソースリストに追加します./etc/apt/source.list.d/ディレクトリの下にpgdg.listファイルを作成します.ファイルの内容は
    deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
    

    ここではUbuntu 14.04のソースについて、他のバージョンのシステムはドキュメントに関連するソースを見つけることができます.次に、ソースの署名をインポートします.
    $wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    

    これでPostgreSQLの公式ソースをソースリストに追加します.次に、パッケージリストを更新し、使用するpostgresql-9.4postgresql-server-dev-9.4の2つのパッケージをインストールします.
    $sudo apt-get update
    $sudo apt-get install postgresql-9.4 postgresql-server-dev-9.4
    

    これでPostgreSQL 9.4の基本的なインストールが完了しました.同様に、ここでのデータベース・バージョンの選択は純粋に個人の好みのため、実際の開発と生産の過程で必要に応じてバージョンを選択する必要があります.
    1.2.2アクセス権の構成
    PostgreSQLのインストールが完了すると、自動的にシステムにpostgresという名前のユーザー、すなわちPostgreSQL Administratorユーザーが作成されます.PostgreSQLに対する操作はこのユーザーが行うことが望ましいので、rootユーザーの使用は避けましょう.このユーザーを使用するには、まずパスワードを変更する必要があります.
    $sudo passwd postgres
    

    postgresユーザーパスワードとアクセス
    以上はオペレーティングシステムのpostgresユーザーの操作であり、データベース管理システムにもユーザーの概念があることを知っています.PostgreSQLの管理者ユーザーもpostgresで、それを使ってデータベースを管理するためにもパスワードを設定する必要があります.まずpostgresユーザーの下にログインし、
    $su postgres
    

    その後、PostgreSQLの管理プログラムpsqlにアクセスします.この場合、アクセス制御項目のデフォルトはpeerであり、ローカルオペレーティングシステム上のpostgresユーザーのみがアクセスできるため、パスワードは必要ありません.
    $psql
    

    このときコマンドプロンプトはpostgres=#となり、psql環境に入ることを説明し、パスワードを設定し、
    postgres=# \password
    
    psql環境を終了し、
    postgres=# \q
    

    その後postgresユーザーのアクセス制御項目を変更し、/etc/postgresql/9.4/main/pg_を編集hba.confファイル、
    local   all             postgres                                peer
    

    次のように変更
    local   all             postgres                                md5
    

    プロファイルを再読み込みして変更を有効にします.
    $pg_ctlcluster 9.4 main reload
    

    注意Debian系のLinuxはpg_ctlclusterコマンドを採用しており、pg_ctlコマンドではありません.このときpsqlを再利用するにはパスワードを入力する必要があります.
    クライアント上のNavicatがPostgreSQLを登録管理できるようにするには、ネットワークポートの傍受を開始する必要があり、/etc/postgresql/9.4/main/postgresqlを編集する.confファイル、
    #listen_addresses = 'localhost' 
    

    次のように変更
    listen_addresses = '*' 
    

    注意、ここでは行頭の注釈を外します.同様に、プロファイルを再読み込みして変更を有効にします.
    1.2.3アプリケーション・ユーザーとデータベースの作成
    Navicat接続でPostgreSQLデータベースを管理できるようになりました.グラフィックスインタフェースの下でユーザーとデータベースを簡単に作成できます.ここではアプリケーションと同じ名前のユーザーとデータベースを作成すればいいです.すべてteamteaと名付けられています.
    同様にアクセス権を追加し、/etc/postgresql/9.4/main/pg_を編集する必要があります.hba.confファイル、行を追加
    local   teamtea             teamtea                                md5
    

    ここでは、ユーザーteamteaがteamteaという名前のデータベースにのみアクセスできることを制限します.これはアプリケーションにとって十分であり、データベースシステム全体にとって安全です.上記の作業が完了するとpostgresユーザーを終了できます.
    1.3 Djangoの構成、サービスの開始
    1.3.1 Djangoの構成
    Django接続PostgreSQLはpsycopg 2ドライバに依存し、プロジェクトを初期化する前にこのパッケージをインストールする必要があります.
    $sudo pip3 install psycopg2
    

    これは、gcc、make、および上にインストールされているpostgresql-server-dev-9.4などのパッケージに依存してコンパイルプロセスに関連し、インストールに失敗した場合は、プロンプトに従って依存をインストールする必要があります.
    Djangoプロジェクトteamteaの構成を開始できます.プロジェクトディレクトリに入り、ファイル/teamtea/settingsを編集します.pyファイル、データベース構成項目をに変更する
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': 'teamtea',
            'USER': 'teamtea',
            'PASSWORD': 'teamtea',
            'HOST': 'localhost',
            'PORT': '5432',
        }
    }
    

    データベース構成項目については、公式ドキュメントを参照してください.
    ここで同時に工事のタイムゾーンをUTC+8すなわち北京時間に設定し、タイムゾーンの配置項目を
    TIME_ZONE = 'Asia/Shanghai'
    

    1.3.2初期化項目
    プロジェクトを初期化できるようになりました.Django 1.7から既存のデータベース同期コマンドsyncdbをdeprecatedとマークし、1.9でこのコマンドを完全に削除しました.代わりにmigrateコマンドです.
    python3 manage.py migrate
    

    なお、Djangoは、Python 3の実環境にpip3を介してインストールされているため、manageが実行する.pyスクリプトを実行する前にPython 3を指定する必要があります.そうしないとDjangoが見つかりません.virtualenvを使用すると改善されます.
    1.3.3サービスの開始
    Djangoに内蔵された簡単なテスト用Webサーバを起動して、プロジェクト全体が稼働できるかどうかをテストできます.
    python3 manage.py runserver 0.0.0.0:8000
    

    ここではIPとポート番号を指定する必要があります.そうしないと、ローカルでしかアクセスできません.ユーザーマシンのブラウザを開き、http://IP:8000デバッグ用のページが表示され、プログラムが正常に動作していることを示します.サービスを終了するには、Ctrl-Cでプロセスを終了すればよい.
    2まとめ
    2.1プロセスのまとめ
    全体の過程はやはり熟知していないため多くの回り道を歩いて、特に私のショートボードのデータベースのこの1枚で、PostgreSQLに対してまだ学習を強化する必要があります.
    2.2またできる仕事
    学習用の工程構築過程として,こちらの文章で述べた手順は無理に足りるが,まだ粗末に見え,virtualenvを用いて開発環境を管理し,直接実環境で開発を行うことを避けるなど,多くの仕事ができる.gitを使用してバージョン制御を行うこともできます.これは学習段階でも必要です.毎回正常に実行できるコードをメモし、ある変更後にプログラムが実行できず、何の見当もつかない気まずい状況を防ぐのに役立ちます.もちろん、webアプリケーションを導入するにはuwsgi+nginxの方法も使用できますが、これはもっと複雑で、Djangoの学習にとって意味がなく、別のテーマとして検討することができます.