django 004 | CRUD : Read
1.Read実習
=>以前のblogアプリから
1. views.変更def home(request):
blogs=blog.objects.all()
return render(request, 'home.html',{'blogs':blogs})
=>homeが関数を渡すと、ブログのすべてのパラメータが一緒に返されます.htmlで表示
URL
def home(request):
blogs=blog.objects.all()
return render(request, 'home.html',{'blogs':blogs})
(1)appのviewsを入力
from blog import views
(2)パスの追加path('', views.home, name="home"),
この時は先に家に帰ります.htmlを変更します:文章のクエリーセットだけを表示して、不完全に見えます
<body>
<h1>Blog Project</h1>
{% for blog in blogs %}
{{blog}}}
{% endfor %}
</body>
(2)したがって,出力の詳細が(1)よりも細いことを確保しなければならない.<body style="text-align: center;">
<h1>Blog Project</h1>
{% for blog in blogs %}
제목 : {{blog.title}} <br><br>
작성자 : {{blog.writer}} <br><br>
내용 : {{blog.body}} <br><br>
{% endfor %}
</body>
=> (1)summary関数をモデルに追加する
def summary(self):
return self.body[:100] #파이썬 슬래쉬 기능으로 100자까지 잘라주기
(2) home.htmlの変更
내용 : {{blog.body}}
上の友達.내용 : {{blog.summary}}
クリスタルpath-converter:元のデータベース要素ごとに一致するページが必要です.ただし、=>path-converter機能では、統合ビュー、設定ビュー、URL接続を作成することはほとんど不可能です.
(1)ビューにdetail関数を追加する
def detail(request, id):
Blog=get_object_or_404(blog, pk=id)
#여기서 두개를 가져올거임 (1)테이블 : (2)pk를 가져오는 것
#pk는 row를 구별해주는 친구
# pk =매개변수를 받은 id
#이는 쿼리셋이 아닌 오브젝트 하나만을 가져옴
return render(request, 'detail.html', {'blog':Blog})
=>blogはid値を受け入れpkとして区別し,戻るときにidに対応する子供を返す.(2)このid値はurlを調整することができ、ユーザがidに基づいて異なる結果を表示できるようにするため、urlパスを追加する
path('<str:id>', views.detail, name="detail" ),
=>まっすぐ帰ります.htmlから受信
<div class="container">
<h1>Blog Project</h1>
{% for blog in blogs %}
제목 : {{blog.title}} <br><br>
작성자 : {{blog.writer}} <br><br>
내용 : {{blog.summary}} <a href="{ %url 'detail' blog.id $}")>...more</a>
{% endfor %}
</div>
Reference
この問題について(django 004 | CRUD : Read), 我々は、より多くの情報をここで見つけました https://velog.io/@myway00/django-004-CRUD-Createテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol