1.django 3.0.5インストール
1.1 Pythonのバージョン
:Pythonの3.7.7(d7c567b08f、2020年3月10日、午前2時56分16秒v3.7.7)
ダーウィンの[クラン6.0(打ち鳴らす-600.0.57)]
タイプの"ヘルプ"、 "著作権"、 "クレジット"または"ライセンス"詳細については。
、コマンド入力後しばらくお待ちください
>>>輸入ジャンゴ
>>>プリント(django.get_version())
3.0.5
またはコマンドを使用して、
python -mジャンゴ--version
3.0.5
プロジェクトの作成1.2
ジャンゴ-adminのstartprojectのdjango3demo
ディレクトリ構造:manage.py
- 最も外側のdjango3demo
/
プロジェクトのルートディレクトリにだけコンテナを、名前のルートはジャンゴには影響しません、あなたはあなたのような任意の名前に名前を変更することができます。 manage.py
:あなたは、コマンドラインツールDjangoのプロジェクト管理を使ってみましょうするためのさまざまな方法。- django3demoの層があり
/
、あなたのプロジェクトが含まれているディレクトリが、それは純粋なPythonパッケージです。その名前は、Pythonのパッケージ名の内側にそれには何も参照するときに使用するということです。(このようなdjango3demo.urlsとして)。 mysite/__init__.py
:このディレクトリがPythonパッケージ考慮すべきであるとのPythonを告げる空のファイル。mysite/settings.py
:Djangoプロジェクトの設定ファイル。mysite/urls.py
:あなたのサイトとしてURL声明Djangoプロジェクト、「ディレクトリ」。mysite/asgi.py
:あなたはASGIに準拠したWebサーバーでプロジェクトエントリを実行しています。mysite/wsgi.py
:あなたは入学WSGIに準拠したWebサーバー上でプロジェクトを実行すると。
開発のための単純なサーバー1.3
あなたが本当にDjangoのプロジェクトの成功を作成するかどうかを確認しましょう。あなたの現在のディレクトリが外側django3demoカタログされていない場合、このディレクトリに切り替えて、次のコマンドを実行してください:注スタートアップディレクトリがdjango3demo内のディレクトリです
python manage.pyのrunserver
システムチェックは何の問題(沈黙0)を特定していません。
あなたは17未適用、マイグレーション(複数可)を持っています。管理、認証、contenttypesの、セッション:アプリ(S)のためのマイグレーションを適用するまで、あなたのプロジェクトが正常に動作しない場合があり。
それらを適用するために実行「のpython manage.py移行」。
2020年4月8日-午前3時51分21秒
Djangoのバージョン3.0.5、設定「django3demo.settings」を使用して
http://127.0.0.1:8000/で開発サーバーの開始は、
CONTROL-Cでサーバーを終了します。
Ctrl + Cキーで閉じる閉じるサービス
再始動に成功した後のサービス:1.3.1は、次のように記録し、移行を実行します
python manage.py移行
操作を実行するには:
管理、認証、contenttypesの、セッション:すべてのマイグレーション適用
マイグレーションを実行する:
contenttypes.0001_initial ... OK適用
auth.0001_initial ... OK適用
admin.0001_initial ... OK適用
適用する管理者を。 0002_logentry_remove_auto_add ... OK
admin.0003_logentry_add_action_flag_choicesを適用... OK
contenttypes.0002_remove_content_type_nameを適用... OK
auth.0002_alter_permission_name_max_lengthを適用... OK
auth.0003_alter_user_email_max_lengthを適用... OK
auth.0004_alter_user_username_optsを適用する... [OK]を
適用auth.0005_alter_user_last_login_null。 .. OK
auth.0006_require_contenttypes_0002を適用... OK
auth.0007_alter_validators_add_error_messagesを適用... OK
auth.0008_alter_user_username_max_lengthを適用... OK
auth.0009_alter_user_last_name_max_lengthを適用... OK
auth.0010_alter_group_name_max_lengthを適用する... [OK]を
適用しauth.0011_update_proxy_permissions ... OK
適用セッションOK ... .0001_initial
赤いヒントを再起動しなかった後、
StatReloaderでファイルの変更を監視
実行システムチェック...
システムチェックは何の問題(沈黙0)を特定していません。
2020年4月8日- 3時57分21秒
Djangoのバージョン3.0.5、設定「django3demo.settings」を使用して
http://127.0.0.1:8000/で開発サーバーの開始は、
CONTROL-Cでサーバーを終了します。
http://127.0.0.1:8000/に1.4ブラウザ
ポーリングポーリングを作成します。2.
manage.py startappのポーリングのpython $
以下のディレクトリの生成
あなたの最初のビューを書く2.1
世論調査/ views.py
、
2.2世論調査は/ urls.pyファイルを追加します
2.3次のステップは、我々はルートのURLconfファイルに作成するように指定することである polls.urls
モジュール。ango3demoクリックする/urls.py
文書を urlpatterns
リストに挿入するために include()
、次のように、:
django.contribインポート管理者から django.urlsからインポート、パス含む urlpatterns = [ パス( 'ポーリングを/'() 'polls.urls'を含む)、 パス( '管理/'、admin.site.urls) ]
備考:
あなたは、常に使用する必要があり、他のURLパターンを含む場合には include()
、 admin.site.urls
それが唯一の例外です。
2.4起動サービス、127.0.0.1:8000
127.0.0.1:8000/pollsを入力します。
2.5管理者アカウントを作成します。
python manage.pyのcreatesuperuserは、
ユーザー名とパスワードとメールボックスを入力してください
サイト管理ページを入力する2.6
2.7は、投票アプリケーション管理ページに追加しました
世論調査/ admin.py
2.8経験と便利な管理機能
3.自動テスト
定義されたtests.py
輸入日時 django.test輸入のTestCaseから django.utilsからは、タイムゾーンをインポート .modelsから質問インポート クラスQuestionModelTests(テストケース): デフtest_was_published_recently_with_future_question(自己): 「」」 was_published_recently()そのPUB_DATE質問についてfalseを返す 将来のです。 『』 「 時間= timezone.now()+ datetime.timedelta(日= 30) future_question =問(PUB_DATE =時間) self.assertIs(future_question.was_published_recently()、偽)
3.1テストの実行
python manage.pyテストポーリング
トレースバック(最新の呼び出しの最後):
ファイル"/Users/apple/PythonProjects/django3demo/polls/tests.py"、ライン18、test_was_published_recently_with_future_questionで
self.assertIs(future_question.was_published_recently()、偽)
はAttributeError: '質問'オブジェクトが持っています無属性「was_published_recently」
-------------------------------------------------- --------------------
0.001sで実行した1つの試験
FAILED(エラー= 1)
故障記録
test_was_published_recently_with_future_question
プロセスは、作成pub_date
30日の値Question
インスタンス。- その後、使用
assertls()
方法、発見されたwas_published_recently()
リターンをTrue
、私たちはそれを返すことを期待False
。
python manage.pyテストポーリング
別名「デフォルト」...のためのテスト・データベースの作成
は問題を特定していないシステムチェックを(0沈黙します)。
..
------------------------------------------------ ----------------------
0.002sで蘭2つのテスト
OK
3.2包括的なテスト
テストを作成します。
デフtest_was_published_recently_with_old_question(自己): "" " was_published_recently()そのPUB_DATE質問はFalseを返す 1日よりも古いです 。""" 時間= timezone.now() - datetime.timedelta(日= 1、秒= 1) old_question =質問(PUB_DATE =時間) (old_question.was_published_recently()、偽)self.assertIs デフtest_was_published_recently_with_recent_question(自己): "" " was_published_recently()の質問そのPUB_DATEためTrueを返し 最終日以内です。 """ (時間= timezone.now ) - datetime.timedelta(時間= 23、分= 59、秒= 59)秒= 59) recent_question =問(PUB_DATE =時間) self.assertIs(recent_question.was_published_recently()、TRUE)