Django database
日期:2020 / 04 / 12
講者:Arashi
Outline
- DB Browser for SQLite
- CRUD
- Use data to web
- 圖形化介面
- 可直覺性的操作
- Windows 與 Mac 皆可使用
- 免費,免費,免費!
使用步驟
3. 點選打開資料庫,在第一層 mysite 資料夾內找到 db.sqlite3




Database Structure
Text

Browse data
CRUD
Create
Read
Update
Delete
(新增)
(讀取)
(修改)
(刪除)
CRUD
進入虛擬環境
$ cd 到上次建立的資料夾
$ venv\Scripts\activate
$ cd 到上次建立的資料夾
$ source venv/bin/activate
for windows
for mac
Install - ipython
$ pip install ipython
-
在套件、模組或函數名稱後加上 ? 可查看與之相關的資訊。
-
history 指令可查看所有輸入過的指令。
- 可以使用 shell 指令,如:ls、cd。
Django Shell
$ python manage.py shell
- 會預先為我們設定 Django 需要的環境
- 可以直接操作資料庫

Create data
>>> 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
要進行的操作
欄位名稱
欄位內要放入的內容
Read data
>>> 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>]>
Read data
>>> 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>]>
Update data
>>> 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'
Delete data
>>> posts.delete()
(2, {'blog.Post': 2})
>>> Post.objects.all()
<QuerySet [<Post: Django 大冒險>]>
Use data to web
打開 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
Thanks for listening.
References
- Django girls - taipei. (2016).Retrieved from https://djangogirlstaipei.gitbooks.io/django-girls-taipei-tutorial/django/template_tags.html
- Data-flair.(2019).Retrieved from
https://data-flair.training/blogs/django-crud-example/ - 梅問題教學網(2019).Retrieved from
https://www.minwt.com/website/server/21758.html - codecademy(2020).Retrieved from
https://www.codecademy.com/articles/how-to-use-ipython - 高見龍(2011).Retrieved from
https://kaochenlong.com/2011/10/19/django-shell/ - Django girls tutorial. (2016).Retrieved from
https://tutorial.djangogirls.org/zh/html/
Django database
By arashi
Django database
- 148