「」「 ルフィと呼ばれる。ここケースプロジェクト ルフィプロジェクトのための仮想環境を作成する >: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)
インポートログ ロガー = logging.getLogger(「ジャンゴ」)
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) 戻り応答
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、ヘッダー=ヘッダ、例外=例外)