データモデルを作成するためのDjangoプロジェクト(モデル)

  我々はMySQLやsqlite3のを使用しているかどうかをDjangoはデータベースには、Djangoは我々が注目とタイプのSQLステートメントを必要としないので、Djangoは私たちが自動的に生成するのに役立ちます、自動的にSQL文の適切なデータベースの種類を生成するために私たちを助ける、モデルによって運営され、我々だけモデルは、それを記述する必要があります。

  Djangoは自動的にクラスで書かれたコードに応じて、データベーステーブルを生成します。私たちは、クラスは、データベースのテーブルを表して書きます。

  基本原則:

  • 各モデルはジャンゴでPythonのクラスの性能であります
  • 各モデルはdjango.db.models.Modelから、すべてのdjango.db.models.Modelのサブクラス継承であります
  • 各クラスは、データベース内のテーブルを表すモデル
  • モデル(属性)の各フィールドは、データベーステーブル内の列を表します
  • Djangoは自動的にデータベースにアクセスするためのAPIを生成します。

 

記事の分類、記事、記事のラベル、スライドチャート、推奨位置、リンク:ここでは、我々は、データの6種類を格納する必要がブログプロジェクトを完了するために、分析した後、例として、ブログのプロジェクトを持っています。テーブルの各データ。

django.db インポートモデル
 から django.contrib.auth.models インポートユーザー 
 インポートDjangoはユーザモジュールが来ます

で掲示される
クラス分類(models.Model):
    名前 = models.CharField(' ブログの分類'、MAX_LENGTH = 100 
    インデックス = models.IntegerField(デフォルト= 999、verbose_name = ' ソート' 

    クラスメタ:
        verbose_name = ' 博客分类' 
        verbose_name_plural = verbose_name

    DEF  __str__ (自己):
         戻りself.nameの
 #のタグ
クラスのタグ(models.Model):
    名前 = models.CharField(' タグ'、MAX_LENGTH = 100 クラスのメタ- :
        verbose_name = ' 文章标签' 
        verbose_name_plural = verbose_name

    DEF  __str__ (自己):
         戻りself.nameの
 推奨位置
クラストゥイ(models.Model):
    名前 = models.CharField(' 推奨位置'、MAX_LENGTH = 100 

    クラスメタ:
        verbose_name = ' 推荐位' 
        verbose_name_plural = verbose_name

    デフ __str__ (自己):
         戻りself.name

記事の
クラスArticleこの記事だった(models.Model):
    タイトル = models.CharField(' 标题'、MAX_LENGTH = 70 
    抜粋 = models.TextField(' 摘要'、MAX_LENGTH = 200、空白= 真)
    カテゴリ = models.ForeignKey(カテゴリ、on_delete = models.DO_NOTHING、verbose_name = ' 分類'、空白= Trueの場合、ヌル= TRUE)
     分類-多くの関係の分類に関連した外部キー 
    タグ= models.ManyToManyField(タグ、 = verbose_name ' タグを'、ブランク= TRUE)
    タグに関連付けられた外部キーテーブルは、タグ対多の関係である 
    IMG = models.ImageField(upload_to = ' article_img / Y%/%M /%D / '、= verbose_name ' ベース写真"、空白= Trueの場合、ヌル= 真)
    本体 = models.TextField()
    ユーザー = models.ForeignKey(ユーザー、on_delete = models.CASCADE、verbose_name = ' 作者'  ""」
     ここから著者は、ユーザーdjango.contrib.auth.modelsインポートします。
     ここでは、ユーザーに関連する記事やアップによりFOREIGNKEY。
     "" " 
    ビュー = models.PositiveIntegerField(' READ '、デフォルト= 0)
    TUI = models.ForeignKey(トゥイ、on_delete = models.DO_NOTHING、verbose_name = ' 推荐位'、空白= Trueの場合、ヌル= 真)
    
    CREATED_TIME = models.DateTimeField(' 名前'、auto_now_add = 真)
    MODIFIED_TIME = models.DateTimeField(' 修正'、auto_now = 真)

    クラスメタ:
        verbose_name = ' 記事' 
        verbose_name_plural = ' 記事'

    デフ __str__ (自己):
         戻りself.title

バナー
クラスバナー(models.Model):
    text_info = models.CharField(' 标题'、MAX_LENGTH = 50、デフォルト= '' 
    IMG = models.ImageField(' カルーセル図'、upload_to = ' バナー/ ' 
    LINK_URL = models.URLField(' 画像リンク'、MAX_LENGTH = 100 
    is_active = models.BooleanField(' 是否是アクティブ'、デフォルト= 偽)

    デフ __str__ (自己):
         戻りself.text_info

    クラスメタ:
        verbose_name = カルーセル図
        verbose_name_plural = カルーセル図


リンク
クラスリンク(models.Model):
    名前 = models.CharField(' リンク名'、20はMAX_LENGTH =です
    linkurl = models.URLField(' 网址'、MAX_LENGTH = 100 

    デフ __str__ (自己):
         戻りself.nameの
     クラスメタ:
        verbose_name = ' リンク' 
        verbose_name_plural = ' リンク'

それら、記事や多くの関係を分類の中で、記事やラベルは、著者の記事と多対多の関係で、記事や推奨位置は、多くの関係1つです。

クラスIMG上記物品は、画像フィールドカバーを示し、article_img /アップロードディレクトリ、%Y /%mに/%D /ファイルのアップロードを自動的にアップロード時に添加されます。

上記のモデルの準備が完了した後、私たちはコーディングのモデルを完了したが、これらのモデルは、実際のデータベーステーブルに作成されていなかった、我々は、データベースの移行のために必要!

  データベースの移行を実行する前に、我々は、MySQLの設定を(それが設定されていない場合は、デフォルトのデータベースを使用して)MySQLデータベースを使用してDjangoのプロジェクトを設定する必要があり、以下を参照してください。mysqlデータベースDjangoプロジェクトを使用する方法  

我々はそれをデータベースの移行を実行することができますので、データベースは、構成された後!データベースの移行は非常に簡単で、単に次のコマンドを実行します。

python3 manage.py makemigrations
python3 manage.py移行

移行が枕、本の出現当社条クラスが使用する写真なぜならそれは間違った理由とバナーフィールドのImageFieldをインストールするように要求することができるとき、私たちは、パッケージを処理した画像を使用する必要が間違っ枕モジュールをインストールするには、画面の指示に従ってくださいすることができます:

PIP3インストール枕

枕モジュールは、その後正常にインストールされ、後に移行データベースを実行します。

データベースの移行が成功した後、プログラムは自動的に、ブログのディレクトリ内の最初の数移行にデータベースの移行レコードを記録したファイルを、ファイル000を生成します。 

 データベースは、データベース内のビューのテーブルに移行された後、テーブル名のデフォルト値:アプリケーション名_モデル名:

 この時点で、我々のモデルモデルは成功を作成します!

おすすめ

転載: www.cnblogs.com/lwjnicole/p/12324347.html