日期:2020 / 04 / 12
講者:Arashi
3. 點選打開資料庫,在第一層 mysite 資料夾內找到 db.sqlite3
Text
Create
Read
Update
Delete
(新增)
(讀取)
(修改)
(刪除)
$ cd 到上次建立的資料夾
$ venv\Scripts\activate
$ cd 到上次建立的資料夾
$ source venv/bin/activate
for windows
for mac
$ pip install ipython
$ python manage.py shell
>>> from blog.models import Post
>>> Post.objects.create(title='My First Trip', text='肚子好餓,吃什麼好呢?', author_id=1)
>>> Post.objects.create(title='My Second Trip', text='去散散步吧?', author_id=1)
>>> Post.objects.create(title='Django 大冒險', text='從靜態到動態?', author_id=1)
Post.objects.create(title='My First Trip', text='肚子好餓,吃什麼好呢?', author_id=1)
指定Table
要進行的操作
欄位名稱
欄位內要放入的內容
>>> Post.objects.all()
<QuerySet [<Post: My First Trip>, <Post: My Second Trip>, <Post: Django 大冒險>]>
>>> Post.objects.get(id=1)
<Post: My First Trip>
>>> Post.objects.filter(title__contains='Trip')
<QuerySet [<Post: My First Trip>, <Post: My Second Trip>]>
>>> Post.objects.order_by('created_date')
<QuerySet [<Post: ASas>, <Post: qwq>, <Post: cxvc>, <Post: Django 大冒險>]>
>>> Post.objects.order_by('-created_date')
<QuerySet [<Post: Django 大冒險>, <Post: cxvc>, <Post: qwq>, <Post: ASas>]>
>>> posts = Post.objects.filter(title__contains='Trip')
>>> posts
<QuerySet [<Post: My First Trip>, <Post: My Second Trip>]>
>>> posts[0].text
'肚子好餓,吃什麼好呢?'
>>> posts.update(text='123')
2
>>> posts[0].text
'123'
>>> posts.delete()
(2, {'blog.Post': 2})
>>> Post.objects.all()
<QuerySet [<Post: Django 大冒險>]>
打開 trips/views.py
#trips/views.py
# # 新增
from django.shortcuts import render
from blog.models import Post
# 新增
def home(request):
post_list = Post.objects.all()
return render(request, 'home.html', {
'post_list': post_list,
})
打開 mysite/urls.py
# mysite/urls.py
from trips.views import hello_world, home
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', hello_world),
# 新增
path('home/', home),
]
在 blog 的資料夾內新建一個 templates 資料夾,並創建 home.html
<!-- home.html -->
{{ post_list }}
使用 for 迴圈取出 list 內的資料
<!-- home.html -->
{% for post in post_list %}
<div>
{{ post.title }}
{{ post.published_date }}
{{ post.text }}
</div>
{% endfor %}
$ python manage.py runserver