🙄
Django開発入門8:DB使い方まとめ
モデル作成
returnは名前など、そのデータを表すわかりやすいものを選びましょう。
bbs/admin.py
class User(models.Model):
# どんなデータを含むみたいのか?
Name = models.CharField(max_length=100) # 文字列
Tell = models.IntegerField(blank=True, null=True) # 整数
Mail = models.EmailField(max_length=100) # Email
Birthday = models.DateField() # 日付
Website = models.URLField() # URL
FreeText = models.TextField() # フリーテキスト
def __str__(self):
return self.name
管理者ページにDBを表示させる
bbs/admin.py
admin.site.register(User)
ミグレーションする
python manage.py migrate
これでダメなら以下を試しましょう。
python manage.py makemigrations bbs
python manage.py makemigrations
これでモデルが設定され、データを登録したり保存したりできるようになりました。
次にこのモデルを使ってデータを表示する方法について説明します。
views.pyを変更する
bbs/views.py
# モデルを読み込みます。
from django.shortcuts import render
from django.http import HttpResponse
from .models import Article
from .models import User
def index(request):
articles = Article.objects.all()
user = User.objects.all()
context = {
'message': 'Welcome my BBS',
'articles': articles,
'user':user,
}
return render(request, 'bbs/index.html', context)
テンプレートを変更する
bbs/templates/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>paiza bbs</title>
<style>body {padding: 10px;}</style>
</head>
<body>
<h1>paiza bbs</h1>
<p>{{ message }}</p>
{% for article in articles %}
<p>{{ article.content }}</p>
{% endfor %}
{% for u in user %}
<p>{{ u.Name }}</p>
{% endfor %}
</body>
</html>
これで表示できました。
Discussion