このブログでは、最初のDjangoプロジェクトを構築し、このプロジェクトを改善する方法を紹介しています。欠点があるかどうかを理解してください。プロジェクトの作成方法を紹介し、設定の構成を説明し、mysqlデータベースを構成し、データベースを移行します。
工具: pycharm2020 <Django 从入门到 ‘放弃’ > 第二篇 沙漏在下雨
このコラムでは、Djangoを始めてから「あきらめる」までの経緯を紹介します。基本的なプロジェクトと複雑なプロジェクトがあります。自分のお金を使ってトレーニングコースに行き、皆さんと共有します。一緒に勉強しましょう!一連のチュートリアルを公開するのは今回が初めてですが、欠点を教えてください。私は後輩で、大学院入学試験会の準備をしています!
記事ディレクトリ
最初のプロジェクト(プロジェクト)を作成します。
- コマンドラインを使用するか、以下のpycharmを使用してください
terminal
- 作成が成功したら、ファイルツリーを開きます。
-
最初にnowappプロジェクトアプリを無視します。作成後、サブフォルダーnowprojectを開きます。さらにいくつかの構成ファイルがあります。概要は次のとおりです。
1)manage.pyファイル
第1レベルのサブディレクトリにあるmanage.pyファイルは、Djangoプロジェクトを管理するための重要なコマンドラインツールであり、主にプロジェクトの開始、アプリケーションの作成、およびデータベースの移行の完了に使用されます。
2)はinitの.pyファイルを
2つのサブディレクトリINIT現在位置を特定するための.pyファイルディレクトリDjangoのパケットを導入インポートこのファイルの場合、または他の方法によって、Pythonのパッケージでは、自動的に識別されます。
3)settings.pyファイル
settings.pyファイルは、Djangoプロジェクトの重要な構成ファイルです。プロジェクトが開始されると、settings.py構成ファイルが自動的に呼び出され、それが定義する一部のグローバルがDjango操作のパラメーターを提供します。この構成ファイルの一部の変数をカスタマイズして、グローバルスコープでデータを転送することもできます。
4)urls.pyファイル
url.pyファイルは、DjangoプロジェクトのURLマッピング関係を記録するために使用されます。これは、プロジェクトの基本的なルーティング構成ファイルに属します。ルーティングシステムは、このファイルで構成されます。Webを実現するには、プロジェクト内の動的パスをこのファイルと一致させる必要があります。サイト上のリソースへのアクセス。
5)wsgi.pyファイル
wsgi.pyは、WSGI(Web Server Gateway Interface)サーバープログラムのエントリファイルであり、主にアプリケーションの起動に使用されます。WSGIプロトコルに準拠し、ネットワーク通信部分の実現を担当します。プロジェクトが展開されている場合にのみ使用されます。
6)asgi.pyファイル
asgi.pyファイルは、djangoプロジェクトのasgi構成であり、呼び出し可能なASGIを「application」という名前のモジュールレベルの変数として公開します。このファイルの詳細については、https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/を参照してください。
djangoプロジェクトを実行します。
コマンドラインに次のコマンドを入力します。
py manage.py runserver
正常に起動すると、Django独自のデータベースファイルdb.sqlite3がこのディレクトリに生成されます。これは、Djangoにデフォルトで付属している軽量データベースです。http://127.0.0.1:8000から作成したプロジェクトにアクセスしてください。8000はDjangoのデフォルトのポート番号。最後に、実行状態を終了する場合は、CTRL + Cを押して終了できます。
このドメイン名のリンクをクリックすると、次のように正常に作成されます。
これは、プロジェクトを作成して正常に実行したことを意味します。この時点で、コマンドラインが常にエントリを更新していることがわかります。これは、Djangoが通常実行状態にあるため、プロジェクト開発中にリアルタイムで実行できることを意味します。コードをテストまたはデバッグします。
他のポート番号で実行する場合:
py manage.py runserver 8080
または、LAN内の他のコンピューターで実行します。
py manage.py runserver 0.0.0.0:8080
manage.pyファイルコマンド:
コンソールにpy manage.py help
、ヘルプメッセージを入力します。
これらのコマンドの一部は後で使用され、習得する必要はありません。
Type 'manage.py help ' for help on a specific subcommand.
Available subcommands:
[auth]
changepassword
createsuperuser
[contenttypes]
remove_stale_contenttypes
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
[sessions]
clearsessions
[staticfiles]
collectstatic
findstatic
runserver
設定ファイルは構成を説明します:
設定ファイルは、Djangoフレームワークの重要な構成ファイルです。設定ファイルが定義する一部のグローバル変数は、パラメーターをDjangoフレームワークに渡すために使用されます。特定の要件を達成するために、実際のニーズに応じてこのファイルを変更することもできます。この構成ファイルを詳しく紹介しましょう。この構成ファイルを理解することは、Djangoの世界への重要なステップです。
1)BASE_DIR
現在のプロジェクトBookStoreの絶対パスをバインドするために使用されます。プロジェクト内のすべてのファイルはこのパスに依存する必要があります。パスをバインドする方法は次のとおりです。
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
__file__
これはPythonの構文であり、現在のファイルの場所を表示し、os.path.abspath(__file__)
メソッドは現在のファイルの絶対パスを返します。
2)SECRET_KEY
この変数の本質は暗号化されたキーであり、一般的に暗号化アルゴリズムHashおよびMD5と組み合わせて使用されます。たとえば、SECRET_KEYは、セッションの確立時に使用されるユーザーパスワードまたはセッションIDの暗号化に必要です。実際の開発作業では、暗号化キーのセキュリティを確保するために、通常、システムの環境変数に保存されます。
3)デバッグ
Djangoプロジェクトの有効化モードを構成する方法は2つあります。
- DEBUG = Trueは開発環境で使用され、デバッグモードに属します。デバッグを容易にするために、プロジェクトの実行中に一部のエラーメッセージが表示されます。
- DEBUG = Falseはオンライン環境で使用されます。これは、デバッグモードが有効になっていないことを意味します。
コードを書くときは、Trueに設定してください。
4)ALLOWED_HOSTS
現在のサイトにアクセスできるドメイン名(IPアドレス)を構成するために使用されます。DEBUG= Falseの場合は、入力する必要があります。使用方法は3つあります。
- []、空のリストは、1217.0.0.1とlocalhostのみがこのプロジェクトにアクセスできることを意味します。
- ['*']は、どのネットワークアドレスでも現在のプロジェクトにアクセスできることを意味します。
- ['192.168.1.3'、 '192.168.3.3']は、現在の2つのホストのみが現在のプロジェクトにアクセスできることを意味します。
ヒント:ローカルエリアネットワークにいて、他のホストもこのサイトにアクセスできるようにするには、ALLOWED_HOSTS = ['*']メソッドを使用する必要があります。
5)INSTALLED_APPS
このパラメーターは、現在のプロジェクトにインストールするために使用されるアプリケーション(APP)のリストを参照します。Djangoは、管理バックグラウンドアプリケーション、認証ユーザー管理システムなど、デフォルトの組み込みアプリケーションをこのリストに配置します。以前は、これら2つのモジュールも使用しました。それらはそれに応じて導入され、Djangoでは「アプリケーション」と呼ばれます。
独自のプロジェクト要件に応じて追加または削除できます。たとえば、会社がバックエンド管理システムを個別に開発したい場合は、最初のアイテム管理者をコメントアウトできます。開発中に自分で作成したアプリケーションを有効にするには、この変数テーブルに登録する必要があります。したがって、このリストは頻繁に変更する必要があります。
たとえば、私たちのプロジェクトでは、アプリケーションを登録する必要があります。
INSTALLED_APPS = [
'django.contrib.admin'、
'django.contrib.auth'、
'django.contrib.contenttypes'、
'django.contrib.sessions'、
'django.contrib.messages'、
'django.contrib.staticfiles' 、
'你的利用'、
]
6)ミドルウェア
これはミドルウェアの登録に使用され、Djangoはデフォルトでいくつかのミドルウェアをロードします。たとえば、セッションを処理するためのSessionMiddleware、メッセージを処理するためのMessageMiddlewareなどです。これらのミドルウェアに追加またはコメントすることもできます。後で、拡張用の独自のミドルウェア拡張フック関数を作成することもできます。
7)ROOT_URLCONF
ROOT_URLCONF = 'nowproject.urls'
現在のプロジェクトのルートURLを指定し、Djangoのルーティングシステムのエントリポイントです。
8)テンプレート
テンプレートの構成情報を指定するために使用されます。リスト内の各要素は辞書です。以下は、Djangoのデフォルトのテンプレートエンジンです。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [], # 在这里我们可以设置自己的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',
],
},
},
]
9)WSGI_APPLICATION
WSGI_APPLICATION = 'BookStore.wsgi.application'
プロジェクトがデプロイされると、Djangoの組み込みサーバーが使用するWSGIアプリケーションオブジェクトの完全なPythonパス。
10)データベース
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
データベース構成情報を指定するために使用されます。ここでのデフォルト構成は、Djangoに付属のsqllite3データベースです。Djangoは複数のデータベースをサポートしています。この辞書変数のデータベース構成を変更してください。次の章では、Mysqlデータベースの構成について説明します。
11)AUTH_PASSWORD_VALIDATORS
これは、一度に複数に設定できるプラグ可能なパスワード検証ツールです。Djangoは、これらの組み込みコンポーネントを使用して、ユーザーが設定したパスワードレベルが不十分であるという問題を回避します。
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', },
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', },
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', },
]
12)LANGUAGE_CODE和TIME_ZONE
これらは、それぞれ言語構成項目と現在のサーバータイムゾーンの構成項目を表します。一般的に使用される構成は次のとおりです。
- LANGUAGE_CODEの値は英語: 'en-us'または中国語: 'zh-Hans'です。
- TIME_ZONEの値は、世界のタイムゾーン「UTC」または中国のタイムゾーン「アジア/上海」です。
したがって、TIME_ZONE設定を中国のタイムゾーン(zh-Hans)に変更し、LANGUAGE_CODE設定を中国(アジア/上海)に変更する必要があります。そうしないと、東8地区であるため、データベースの保存時間は8時間未満になります。
13)USE_118N和USE_L10N
プロジェクトの開発後、さまざまな国のユーザーにサービスを提供することを選択できるため、国際化とローカリゼーションをサポートする必要があります。2つの変数USE_118NとUSE_L10Nの値は、国際化およびローカリゼーション機能を有効にするかどうかを示します。状態はデフォルトでオンになっています。
注意:USE_I18N = TrueおよびUSE_L10N =True。I18Nは国際化された英語の略語を指し、L10Nはローカライズされた英語の略語を指します。
14)USE_TZ = True
タイムゾーンの処理方法を指します。Trueに設定すると、データベースに保存される時刻はワールドタイム「UTC」になります。TIME_ZONEを設定する場合は、USE_TZをFalseに設定する必要があります。
15)STATIC_URL = '/ static /'
CSS、JS、Imagesなどの静的リソースの保存場所を指します。たとえば、プロジェクトにいくつかの画像を追加したい場合、通常、これらの静的画像は新しく作成された静的ディレクトリ(アプリと同じディレクトリ)に保存されるため、STATIC_URL = '/ static /'パスを介した静的リソースへのアクセスが実現されます。 、これについては後で説明する章を開きます。
Django構成mysqlデータベース:
まず、mysqlデータベースが正しくインストールされていること、インストールが成功していることを確認し、データベースにデータベースを作成します。
create database django;
次に、設定にDATABASESを入力し、次のように設定します。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 指定使用的数据库引擎,可以通过 Django.db.backends 来查看哪些数据库可以与 Django 配合使用;
'NAME': 'django', # 数据库名字
'USER': "root", # mysql 用户名称
'PASSWORD': '123123', # 数据库的密码
'HOST': "127.0.0.1", # 数据库服务地址, 这里我们是测试开发 填本地地址
'PORT': 3306, # mysql 对应的端口号
'default-character-set': "UTF8", # 设置编码规则 utf8
}
}
次に、pymysqlライブラリをインストールする必要があります pip install PyMySQL
最後に、同じレベルの設定で__init__ファイルにコードを追加します。
import pymysql
pymysql.install_as_MySQLdb()
これでmysqlデータベースの構成が完了し、作成したデータがローカルmysqlファイルに正しく保存され、正しく表示できるようになります。
データベースの移行:
プロジェクトを作成すると、cmdは、データ移行を実行していないことを示すエラー警告を出力します。「移行」とは、Djangoのデフォルトの組み込みアプリケーションのデータテーブルを独自に作成したデータベースに移行することを意味します。操作は次のとおりです。
py manage.py migrate
実行後、cmdを介してMySQL情報を出力して以下を取得できます。
また、コマンドを使用する必要があります。これは、現在のデータフィールドが変更されると、間違った形式になるためです。
コマンドを使用する
python manage.py makemigrations
1)makegrationsはデータベース移行ファイルを生成します
データテーブルが変更されると、最初にmakemigrationsコマンドを実行し、次にDjangoが新しいデータベース移行ファイルを再生成してテーブル構造の違いを記録します。命名規則では、0002_xxxなどの前の移行ファイルのシリアル番号に1を追加します。 、0003_xxx。
2)データベース移行コマンドを実行するために移行する
その後、migrateコマンドを再度実行して、新しい移行ファイルを有効にし、データベースに同期して戻します。これにより、テーブル構造定義の変更が完了します。組み込みのDjangoアプリケーションの場合、データベース移行ファイルが生成されているため、migrateコマンドを直接使用してください。
3)完全なデータベース移行の概要
データテーブルが変更されるたびに、次の2つのコマンドを実行する必要があり、それらの実行順序は次のとおりです。
python manage.py makemigrations
python manag.pymigrate
これらは、忘れないように、新しいモデルフォームを作成した後に実行するコマンドです。
上記は、Djangoでプロジェクトを作成する方法、設定の構成、データベースの構成、およびデータベースの移行について説明しています。
0002_xxx、0003_xxxなどの番号に1を追加します。
2)データベース移行コマンドを実行するために移行する
その後、migrateコマンドを再度実行して、新しい移行ファイルを有効にし、データベースに同期して戻します。これにより、テーブル構造定義の変更が完了します。組み込みのDjangoアプリケーションの場合、データベース移行ファイルが生成されているため、migrateコマンドを直接使用してください。
3)完全なデータベース移行の概要
データテーブルが変更されるたびに、次の2つのコマンドを実行する必要があり、それらの実行順序は次のとおりです。
python manage.py makemigrations
python manag.pymigrate
これらは、忘れないように、新しいモデルフォームを作成した後に実行するコマンドです。
上記は、djangoがプロジェクトを作成する方法、設定の構成について説明し、mysqlデータベースとデータベース移行操作を構成する方法についてです。
このコラムでは、私がDjangoを始めたきっかけを紹介します
放弃
。基本的なプロジェクトと複雑なプロジェクトがあります。私は自分のお金を使ってトレーニングコースに行き、あなたと共有します。一緒に勉強しましょう!一連のチュートリアルを公開するのは今回が初めてですが、欠点を教えてください。私は後輩で、大学院入学試験会の準備をしています!