Django プロジェクトを作成して MySQL に接続する方法

Django プロジェクトを作成して MySQL に接続する方法

1: django-admin.py startproject プロジェクト名

2: cd プロジェクト名

3: setting.pyを変更する

(1)ALLOWED_HOSTS = [] => ALLOWED_HOSTS = [“*”]

(2)LANGUAGE_CODE = 'en-us' => LANGUAGE_CODE = 'zh-hans'

(3): TIME_ZONE = 'UTC' => TIME_ZONE = 'Asia/Shanghai'

4: アプリを作成する

django-admin.py startproject アプリ名

5: setting.pyを変更する

INSTALLED_APPS 配列が追加されました => 'アプリ名'

6: プロジェクトディレクトリの下にutilsフォルダを追加して、複数のアプリのパブリックメソッドをカプセル化する

7: アプリの共通メソッドをカプセル化するために、アプリディレクトリに新しいユーティリティファイルを追加します。

8: 各ページのロジックコードを格納するために、アプリディレクトリの下に新しいビューフォルダを追加します。

9: アプリディレクトリに新しいルーティングファイル(urls.py)を追加して、このアプリのすべてのルートを保存します。

形式:
	django.urls インポートパスから
	.views から wx_pay をインポートします
	urlパターン = [
		 path("test", wx_pay.wx_pay().test, name="test"), # テスト]

10: プロジェクトルーティングにアプリルーティングを追加し、プロジェクトディレクトリのurls.pyを変更します。

django.contribからadminをインポート
django.urlsのインポートパスから、
H5からURLをh5_urlsとしてインポート
urlパターン = [
		パス('admin/', admin.site.urls),
	パス("h5/", インクルード(h5_urls))
]

この時点で、Django プロジェクトのディレクトリ構造が構成され、開発フェーズに入ることができます。

開発中にデータベースを使用することが多いので、データベースの設定方法を説明します。

11: プロジェクトディレクトリ内のsetting.pyを変更する

デフォルト:
データベース = {
 'デフォルト': {
  'エンジン': 'django.db.backends.sqlite3',
  'NAME': BASE_DIR / 'db.sqlite3',
 }
}
変更後:
データベース = {
 'デフォルト': {
 'エンジン' : 'django.db.backends.mysql',
 'NAME': 'データベース名(以下、DATABASE1と表記)',
 'USER':'ユーザー名',
 'PASSWORD': 'データベースパスワード',
 'HOST':'IPアドレス',
 'ポート':'ポート'
 }
}

12: データベースを開き、上で設定したデータベース名 (DATABASE1) を追加します。

13: モデルを設定し、appディレクトリにmodels.pyファイルを入力します。

インポート時間

django.dbからモデルをインポートする

# ここでモデルを作成します。

 クラス Test(models.Model):
  str = models.CharField("文字列", max_length=30, null=True, 空白=True)
  num = models.IntegerField("number", デフォルト=1, null=True, 空白=True)
  create_time = models.DateTimeField("time", デフォルト=time.strftime('%Y-%m-%d %H:%M:%S'), 空白=True)

14: データベースにデータを移行する

python manage.py 移行の作成

python manage.py 移行

15: この時点で、次のエラーが報告される可能性があります。

トレースバック(最新の呼び出しが最後):
途中を省略する
<module> の 24 行目にある "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/MySQLdb/__init__.py"
バージョン情報、_mysql.バージョン情報、_mysql.__ファイル__

NameError: 名前 '_mysql' が定義されていません

このエラーは主にMysqldbがpython3.5以降のバージョンと互換性がないために発生します。

16: プロジェクトディレクトリの__init_.pyを変更し、次のコードを追加します。

pymysqlをインポートする

pymysql.version_info = (1, 4, 13, "最終", 0)

pymysql.install_as_MySQLdb()

さて、これでよく使われる設定はすべて完了です。

Django プロジェクトの作成 + MySQL への接続方法についての記事はこれで終了です。Django プロジェクトの作成方法と MySQL への接続方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Djangoプロジェクトアプリケーション作成プロセスの概要
  • Djangoプロジェクトの作成と管理の実装プロセスの詳細な説明
  • Djangoフレームワークのインストールとプロジェクト作成プロセスの分析
  • Python3 で Django プロジェクトを作成するいくつかの方法 (3 種類)
  • Python Django プロジェクトとアプリケーションの作成の詳細な説明

<<:  TypeScriptの列挙型を詳しく説明する

>>:  CSS3 での 2D および 3D 変換の実装

推薦する

HTMLタグIDは変数にできる

<table id=" <%=var1%>">、var1...

K3s 入門ガイド - Docker で K3s を実行するための詳細なチュートリアル

k3dとは何ですか? k3d は、Docker で K3s クラスターを実行するための小さなプログ...

JavaScript ジグソーパズルゲーム

この記事の例では、ジグソーパズルゲームを実装するためのJavaScriptの具体的なコードを参考まで...

MySQLでよく使われる演算子と関数の概要

まずデータ テーブルを作成しましょう。 使用テスト; テーブル「従業員」を作成します( emp_no...

NginxにおけるRewriteのリダイレクト設定と実践の詳しい解説

1: アドレス書き換えとア​​ドレス転送の意味を理解する。アドレス書き換えとア​​ドレス転送は異なる...

レスポンシブ Web デザインが価値のない 5 つの理由

この記事は Tom Ewer の Managewp ブログからのもので、現在人気のレスポンシブ デザ...

CSS3のwebkit-box-reflectを巧みに使用して、さまざまな動的効果を実現します。

かなり前の記事で、 -webkit-box-reflectプロパティについて説明しました。リフレクシ...

Prometheus+Grafanaによるnginxの監視方法を分析する

目次1. ダウンロード2. nginxとnginx-vts-exporterをインストールする3. ...

MySQL 5.5.27 winx64 のインストールと設定方法のグラフィックチュートリアル

1. インストールパッケージMYSQLサービスダウンロードアドレス:MySQL公式サイトからダウンロ...

JS でページのスクリーンショット機能を実装する方法

「ページのスクリーンショット」は、ページポスターの生成、ポップアップ画像の共有など、フロントエンドで...

React における setState の同期または非同期の問題の理解

目次1. setState は同期的ですか?非同期ですか? 2. 非同期的に動作する1. React...

Dockerコアとインストールの具体的な使い方

1. Docker とは何ですか? (1)DockerはLinuxコンテナ内でアプリケーションを実行...

Hadoop 3.2.0 クラスターの構築に関する一般的な考慮事項

1つのポートの変更バージョン 3.2.0 では、ネームノード ページ ポートは 9870、データノー...

Linux でマウントされたファイルシステムの種類を表示する方法

序文ご存知のとおり、Linux は ext4、ext3、ext2、sysfs、securityfs、...

Nginx がフロントエンド リソースへのクロスドメイン アクセスの問題をどのように解決するかの詳細な説明

フロントエンドのクロスドメイン問題に2日間近く悩まされましたが、ようやくngnxを使って解決したので...