Djangoは少しノート-orm操作の概要django.core.exceptions.ImproperlyConfiguredを学ぶ:あるmysqlclient 1.3.13以降が必要です。あなたは0.9.3を持っています

実際には、多くのWebフレームワークは、接続pymysql制御データベースに使用されますが、Djangoはまた、(これも基本的にpymysql)運用方法のORMのデータベースを提供し、二つの方法がすることができますが、我々はORMについて学ぶ必要があります

  • もはやそれに関係しないmysqloracle...というように。
  • シンプルな構成データベースを簡単にコードを変更することなく交換することができます。

ORMの操作:

  HTTPリクエスト:

    URL - >表示(+テンプレートデータ)

  ORMの手術台:

    、テーブルの作成、テーブルを変更し、ドロップテーブル

  オペレーショナル・データ・ライン:

    CRUD

  ORMは、データベース接続などのサードパーティ製のツールを使用しpymysql

  デフォルトのsqlite

  デフォルト:mysqlの - >のMySQLdb(デフォルトのmysqlの接続を変更ジャンゴ

 

 

デフォルトの設定ファイルなどの設定:

DATABASES = {
     ' デフォルト' {
         ' ENGINE '' django.db.backends.sqlite3 ' ' NAME ':os.path.join(BASE_DIR、' db.sqlite3 ' 
    } 
}

我々は、次の設定を変更する必要があります。

DATABASES = {
     ' デフォルト' {
     ' ENGINE '' django.db.backends.mysql ' ' NAME '' DBNAME ' ' USER '' ルート' ' PASSWORD '' XXX ' ' HOST ''' ' PORT ''' 
    } 
}

# 如下设置放置的与project同名的配置的 __init__.py文件中

内部モジュールのMySQLdbジャンゴのMySQLの使用が接続され、また、pymysqlの使用交換する必要がないようなのpython3モジュールである

インポートpymysql 
)(pymysql.install_as_MySQLdbを

このバグ修正このの出現の場合- >  django.core.exceptions.ImproperlyConfigured:あるmysqlclient 1.3.13以降が必要です。あなたは0.9.3を持っています

ステップは、要約を準備することです:

  1. データベースを作成します。
  2. 設定ファイルを変更します。
  3. ファイル__init__.py導入pymysqlを変更

 そして、あなたは作成私たちがテーブルを生成したいので、クラスを:

models.pyレビューのapp01フォルダで:

django.db インポートモデル

#は、テーブルを作成し、列(ID \ NID ... 
クラスのUserInfo(models.Model):
    NID = models.BigAutoField(PRIMARY_KEY = TRUE) この行はDjangoが自動的にデフォルトのidを作成する書き込み、自己ではありません主キーによって、将来的にはこの行を書き込むことはできませんので! = models.CharField(max_lengthを= 32 
    パスワード = models.CharField(64 MAX_LENGTH =)

私たちは、テーブルを作成するために、そのクラスを作成するには?..再びapp01に登録されている設定

アプリケーション定義

INSTALLED_APPS = [
     ' django.contrib.admin ' ' django.contrib.auth ' ' django.contrib.contenttypes ' ' django.contrib.sessions ' ' django.contrib.messages ' ' django.contrib .staticfiles ' ' app01 " 
]
コードの表示

最後に、我々は、トリックをズームする必要があります。テーブル作成これらの2つのコマンドは、骨髄に記録します!

何の移行が存在しない場合は、最初に次のファイルを生成する必要がありアプリ!Pythonのmanage.py makemigrations --empty app01 

Pythonのmanage.py makemigrations 
Pythonのmanage.py移行

それを見、すべて私たち自身のテーブルへの突然のほかのテーブルの多くはに関連したDjangoの背景が付属している、実際には、があります。

 

後でクラスのテーブル名を変更したい場合は、変更し、行の「骨髄コマンド」を実行してください!データは重要ではありません!

あなたが遅い年齢= models.IntegeField()を追加したい場合は、直接の行を追加しますが、....

年齢= models.IntegeField(ヌル= true)か、年齢= models.IntegeField(デフォルト= XXX)を指定することによって、元のデータテーブルの場合

多くの関係を作成し、その上には、例えば、UG = models.ForeignKey(「のUserGroup」、ヌル= TRUE)#は、外部キーug_idを生成します

 

データベース関連のアクション:CRUD

テストを削除することができる
DEF テスト(requst):
     から app01 インポートモデル
     新しい 
    models.UserInfo.objects.create(ユーザ名= ' シャノン'、パスワード= ' 111111 ' #を見つける
    タイプ(リスト)というのUserInfoクエリセットを[OBJ、OBJ 、OBJ] 
    のUserInfo = models.UserInfo.objects.all()
     のためののUserInfo:
         プリント(row.nid、row.username)
    プラス馴化ルックアップフィルタ() #
    であり; id__gt = 1つのidが1よりも大きいです。 id__lt = 1は1つの未満のIDであります
    = models.UserInfo.objects.filterのUserInfo(NID = 2、ユーザ名= ' シャノン' 

    #を削除、最初〜切り捨て見つけなければならない 
    models.UserInfo.objects.filter(= NID。1 ).Delete() 

    アップデート 
    models.UserInfoを.objects.filter(= NID。4).Update(パスワード= ' 123 ' 

    を返すのHttpResponse(' 成功'

 

インプリメント

おすすめ

転載: www.cnblogs.com/ethtool/p/12171368.html