🙄

Django開発入門8:DB使い方まとめ

2023/01/25に公開約1,700字

モデル作成

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

ログインするとコメントできます