Djangoに基づいて開発されたSkyNetブログ1-モデルの作成
3331 ワード
この時間は主にDjangoの開発を勉強しながら、自分のpython言語を強固にします.Djangoは強力なpython webフレームワークで、これに基づいてSkyNetブログシステムを開発しました.htmlもsemantic uiフロントエンドフレームワークを使用しています.興味があれば勉強してみてください.
djangoの基礎内容については、詳しくない学生は私の別のDjangoの初識を見ても、私が書いたより良いブログがたくさんあります.
まず最初にモデルを書くつもりです.Djangoではモデルと呼ばれています.モデルは単一のデータソースで、データベースのテーブルで簡単に理解できます.モデルには次のような基本的な概念があります. modelsはjangoです.db.models.Modelのサブクラス modelsの各属性は、このデータベースのフィールド を表す. Django自動生成データベースアクセスAPI 3つのモデルを定義しました.まずBlogモデルです.具体的には以下のように定義されています.
以下、一つ一つ説明します.はtitleとbodyの2つのフィールドを定義し、違いは2つの異なるFieldを定義し、charFieldは短いテキストに適用され、TextFieldは長いテキストを格納するのに適用され、これは小さな違いである. 定義でcreate_timeとmodify_timeはDateTimeFieldであり、このFieldにはDateとTimeが含まれており、対応するDateFieldとTimeFieldがあり、設定された属性auto_now_addは、最初に作成したときにフィールドを設定し、auto_nowはmodelsが保存されるたびにこの値を変更します. statusは、指定した値 を選択できる属性を設定します. categoryはManyToManyField、つまりマルチペアマルチを設定し、userは外部キーを設定します.
CategoryとUserを作成する必要があります.
ここでUserはAbstractUserを引き継いでDjangoが持参したユーザーで便利です.
最後にBlogCommentを定義し、ユーザーのコメントを記録します.
基本的にSkyNetブログのモデルはここまで作成すればいいので、最後にadminを構成して、adminで私たちのモデルを展示します.
ここでお話ししたいのは、私たちのUserがadminに表示されるようにsettingsが必要です.pyにAUTH_を追加USER_MODEL = 'blog.User'は、デフォルトのUserがカスタマイズしたUserです.もちろん、異なるフィールドを追加してUserを拡張することもできます.モデル作成はまずここまで紹介しましょう!上一篇:Djangoに基づいて開発したSkyNetブログ二——base Template
djangoの基礎内容については、詳しくない学生は私の別のDjangoの初識を見ても、私が書いたより良いブログがたくさんあります.
models
まず最初にモデルを書くつもりです.Djangoではモデルと呼ばれています.モデルは単一のデータソースで、データベースのテーブルで簡単に理解できます.モデルには次のような基本的な概念があります.
class Blog(models.Model):
POST_STATUS = (
('P', ' '),
('D', ' '),
('E', ' '),
)
title = models.CharField(' ',max_length=150)
body = models.TextField(' ')
create_time = models.DateTimeField(' ',auto_now_add=True)
modify_time = models.DateTimeField(' ',auto_now=True)
status = models.CharField(' ',max_length=1, choices=POST_STATUS)
views = models.PositiveIntegerField(' ', default=0)
likes = models.PositiveIntegerField(' ', default=0)
praises = models.PositiveIntegerField(' ', default=0)
category = models.ManyToManyField('Category',blank=True)
user = models.ForeignKey('User',verbose_name=' ')
def __str__(self):
return self.title
class Meta:
ordering = ('-create_time',)
以下、一つ一つ説明します.
CategoryとUserを作成する必要があります.
#models.py
class Category(models.Model):
names = models.CharField(' ',max_length=20)
desc = models.TextField(' ',blank=True, null=True)
def __str__(self):
return self.names
class User(AbstractUser):
pass
ここでUserはAbstractUserを引き継いでDjangoが持参したユーザーで便利です.
最後にBlogCommentを定義し、ユーザーのコメントを記録します.
#models.py
class BlogComment(models.Model):
user = models.ForeignKey('User', verbose_name=' ')
post = models.ForeignKey('BlogPost', verbose_name=' ')
comment = models.TextField(' ',blank=True, null=True)
comment_time = models.DateTimeField(' ',auto_now_add=True)
class Meta:
ordering = ('-comment_time',)
基本的にSkyNetブログのモデルはここまで作成すればいいので、最後にadminを構成して、adminで私たちのモデルを展示します.
#admin.py
class BlogUserAdmin(UserAdmin):
pass
class BlogAdmin(admin.ModelAdmin):
list_display = ('title', 'create_time')
admin.site.register(models.Post, BlogAdmin)
admin.site.register(models.Category)
admin.site.register(models.BlogComment)
admin.site.register(models.User,BlogUserAdmin)
ここでお話ししたいのは、私たちのUserがadminに表示されるようにsettingsが必要です.pyにAUTH_を追加USER_MODEL = 'blog.User'は、デフォルトのUserがカスタマイズしたUserです.もちろん、異なるフィールドを追加してUserを拡張することもできます.モデル作成はまずここまで紹介しましょう!上一篇:Djangoに基づいて開発したSkyNetブログ二——base Template