プロジェクト - Djangoの設定

Djangoプロジェクトを作成します。

環境

「」「
ルフィと呼ばれる。ここケースプロジェクト
ルフィプロジェクトのための仮想環境を作成する
>:mkvirtualenvルフィ
」「」

「」 " 
(CMDで実行)に依存する基本的な環境ではインストール
>:PIP Djangoの2.0.7をインストール== 
>:PIP djangorestframeworkインストール
>:PIPはpymysqlをインストール
"" "

 仮想プロジェクト環境を作成します。

 

 ジャンゴをインストール

 

 インストールdjangorestframework

 

 インストールpymysql

 

 

プロジェクトを作成します。

「」 " 
1.一般的には、プロジェクト用のフォルダを作成します:
>します。#cd Desktopをデスクトップにカット
>します。mkdirルフィ#デスクトップフォルダに格納されているアイテムの作成
プロジェクトフォルダに2. 
>:ルフィCD 
プロジェクトファイルに3をプロジェクトがluffyapiというプロジェクトの下にフォルダを作成します
>:ジャンゴ-ADMIN startprojectのluffyapiの

開発を:準備された仮想環境をpycharmでプロジェクトを開き、事前に選択し
、「」」。

 

 

復興プロジェクトディレクトリ

「」 " 
├──luffyapi 
    ├──ログ/#プロジェクト/開発・ログ・ディレクトリーのランタイム-フォルダ
    ├──manage.py#スクリプトファイル
    ├──luffyapi /#プロジェクトのメインアプリケーションコードは、開発時間を節約する-パッケージ
        モジュールへのディレクトリ・開発者のコード[サブアプリケーション]ディレクトリに格納保存├──アプリケーション/# -パッケージ
        ├──サードパーティのライブラリの保存ディレクトリのlibs /#[サードパーティのコンポーネント、モジュール] -パケット
        ├──設定/#構成ディレクトリ-パッケージ
            ローカル構成場合プロジェクト開発├──dev.py#
            ランタイム線└──prod.py#プロジェクト構成
        ├──urls.py#総配線
        モジュールの└──utilsの/#の複数[サブアプリケーション]パブリック関数ライブラリ[コンポーネント自分の開発する] 
    └──スクリプト/#プロジェクトのオペレーターを保存するときに、スクリプトファイルを-フォルダ
「」 "

 

 

開発環境を設定します

「」 " 
二つのファイル1.変更wsgi.py manage.py:
os.environ.setdefault(『DJANGO_SETTINGS_MODULE』、『luffyapi.settings.dev』)

2.削除または名前変更settings.py、設定の内容をコピー/ dev.pyで

3 dev.pyファイルの内容を変更
LANGUAGE_CODE =「ハンス-ZH」
TIME_ZONEは=「上海のアジア/」
USE_TZ = Falseの

下の図を参照してください。4.スタートアップコンフィギュレーションを変更し

、テスト5.テストデフォルトの設定ファイルのdev.pyかファイル:
    -方法1:任意の__init__.pyファイルのテストのデフォルト設定ファイルがdev.pyファイルであれば
インポート設定django.confからの
印刷(設定)
    
    - 2:フォルダのスクリプトでテストt_dg.pyを作成ファイル(テストコードの詳細を下記参照)
。「」 "

 

 スクリプト/ t_dg.py

インポートOS、ジャンゴ
os.environ.setdefault(" DJANGO_SETTINGS_MODULE "" luffyapi.settings.dev " 
django.setup()
から django.conf インポート設定
 印刷(設定)<設定"luffyapi.settings.dev">成功配置

 

 イラスト

 

 

ログの設定

dev.py

LOGGING = {
     ' バージョン':1 ' disable_existing_loggers ' :偽、
     ' フォーマッタ' {
         ' 詳細' {
             ' 形式'' %(levelname)S%(いるasctime)S%(モジュール)S%(LINENO)D %(メッセージ)S ' 
        } 
        ' シンプル' {
             ' 形式'' %(levelname)S%(モジュール)S%(LINENO)のD%(メッセージ)S ' 
        }、
    }、
    'フィルター' {
         ' require_debug_true ' {
             ' ()'' django.utils.log.RequireDebugTrue ' 
        }、
    }、' ハンドラ' {
         ' コンソール' {
             ' レベル'' DEBUG ' ' フィルタ':[ ' require_debug_true ' ]、
             ' クラス'"
    logging.StreamHandler ' ' フォーマッタ'' シンプル' 
        }、' ファイル' :{
             実際の開発は、WARNING使用することをお勧めします ' レベル'' INFO ' ' クラス'' logging.handlers.RotatingFileHandler " #のログの場所、ログをファイル名、メモ、ログディレクトリを手動で作成する必要があります保存します。このファイルのパスを、それが小さなluffyapi表しBASE_DIRに注意を払う必要がありますファイル名を:os.path.join(os.path.dirname(BASE_DIR)、"ログ"
        
            
            " Luffy.log " )、
            私たちは300M設定されたログ・ファイルの最大、
            ' MAXBYTESを':* 1024 * 1024 300は#のログファイルの数は、10のためのログの最大数を設定する
            ' BACKUPCOUNT ':10 #のログフォーマット:冗長
            ' フォーマッタ'' 詳細' 文書コンテンツエンコーディング
            ' エンコーディング''UTF-8 ' 
        }、
    }、 ログオブジェクト' ロガー'
    
    :{
         ジャンゴ{
             ハンドラ:[ コンソールファイル]、
             伝播:真、他の情報のログ処理システムにバブル続けるにログインできるようにするかどうかを
        } 
    } 
}

 

 

環境変数

dev.py

環境変数の操作:環境変数に追加するアプリケーションフォルダと小luffyapiのBASE_DIR 
インポートSYSの
sys.path.insert(0、BASE_DIR)
APPS_DIR = os.path.join(BASE_DIR、アプリの絶対アプリを得ますパス 
sys.path.insert(1、APPS_DIR)

 

utilsのフォルダに直接プロジェクトを書き込むことで「「」エラー」ではありません   注:ファイルは、環境変数を設定するためのフォルダを追加

パッケージロガー

utilsの/ logging.py
インポートログ
ロガー = logging.getLogger(ジャンゴ

 

例外処理パッケージプロジェクト

utilsの/ exception.py
rest_framework.viewsのインポートdrf_exception_handlerとして例外は、exception_handler
 から rest_framework.viewsのインポート応答
 から rest_frameworkのインポート状態
 から utils.logging インポートロガー
 デフ例外は、exception_handler(EXC、コンテキスト):
    応答 = drf_exception_handler(EXC、コンテキスト)
     場合に応答がありませんなし:
        logger.error(' %S - %S - %S '%(コンテキスト[ ' ビュー' ]、コンテキスト[ ' 要求'] .method、EXC))
         リターン応答({
             ' 詳細'' 服务器错误' 
        }、ステータス = status.HTTP_500_INTERNAL_SERVER_ERROR、例外= TRUE)
     戻り応答

 

第2のパッケージモジュールの対応

utilsの/ response.py
rest_framework.response 輸入レスポンス

クラスAPIResponse(応答):
     デフ __init__(自己、data_status = 0、data_msg = ' OK '、結果=なし、HTTP_STATUS =なし、ヘッダ=なし、例外= Falseを、** kwargsから):
        データ = {
             ' ステータス' :data_status、
             ' MSG ' :data_msg、
        } 
        た場合の結果はありません ないなし:
            データ[ ' 結果' ] = 結果
        data.update(kwargsから)

        スーパー()。__init__(データ=データ、ステータス= HTTP_STATUS、ヘッダー=ヘッダ、例外=例外)

 

おすすめ

転載: www.cnblogs.com/waller/p/11740760.html