Django 3.2.5博客开发教程:体验数据查询
進(jìn)行數(shù)據(jù)查詢之前,我們需要先進(jìn)入我們的管理后臺,在里面添加一些數(shù)據(jù)。然后我們用Pycharm打開我們的數(shù)據(jù)庫。具體操作方法:用Pycharm可視化操作數(shù)據(jù)庫
我們的數(shù)據(jù)結(jié)構(gòu)長這般模樣:
雙擊blog_article,可以查看到文章表里的內(nèi)容和里面的字段:
數(shù)據(jù)查詢,就是在視圖函數(shù)里(views.py文件里)對模型Product進(jìn)行實例化,并生成對象。生成的對象就是我們要查詢的數(shù)據(jù)。然后我們可以對這個對象的屬性進(jìn)行逐一賦值,對象的屬性來自于Product模型中所定義的字段。直白一點的說法就是,我們在視圖層里對某一個數(shù)據(jù)庫表進(jìn)行查詢,然后得到一個對象,我們可以通過這個對象能獲取到這個表里的所有字段的值。具體操作如下:
1、從models.py里導(dǎo)入模型Product(也就是類名,或者說表名):
blog/views.py
#比如我信要查詢所有文章,我們就要views.py文件頭部把文章表從數(shù)據(jù)模型導(dǎo)入 from .models import Article2、在視圖函數(shù)里對要查詢的Product進(jìn)行聲明并實例化,然后生成對象allarticle。
blog/views.py
def index(request):#對Article進(jìn)行聲明并實例化,然后生成對象allarticleallarticle = Article.objects.all()#把查詢到的對象,封裝到上下文context = {'allarticle': allarticle,}#把上傳文傳到模板頁面index.html里return render(request,'index.html',context)注:這里我在原來的基礎(chǔ)上,把index視圖函數(shù)里的內(nèi)容刪除了,修改成上面的內(nèi)容,下面的模板頁面index.html也是如此。
3、打開templates/index.html頁面,修改成下面的內(nèi)容:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>MyBlog</title> </head> <body><div><ul><h4>所有文章:</h4>{% for article in allarticle %}<li>{{ article.title }}</li>{% endfor %}</ul> </div></div> </body> </html>然后訪問網(wǎng)站首頁。就能看到我們的查詢結(jié)果。
在模板里,我們可以對對象的屬性進(jìn)行賦值。比如模板里的{{ article.title }} 標(biāo)題,就是我們通過**{{ 對象.屬性(字段) }}**獲取到對應(yīng)的值。其它字段也是通過這樣的方法來實現(xiàn)。
例如:
templates/index.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>MyBlog</title> </head> <body><div><ul><h4>所有文章:</h4>{% for article in allarticle %}<li>標(biāo)題:{{ article.title }}<br />欄目:{{ article.category }}<br />作者:{{ article.user }}<br />時間:{{ article.created_time }}<br /></li>{% endfor %}</ul> </div></div> </body> </html>從之前的文章我們可以看到,如果我們想要將數(shù)據(jù)庫的數(shù)據(jù)展現(xiàn)到網(wǎng)頁上,需要由視圖、模型與模板共同實現(xiàn),步驟如下:
1、在models.py里定義數(shù)據(jù)模型,以類的方式定義數(shù)據(jù)表的字段。在數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)表時,數(shù)據(jù)表由模型定義的類生成。
2、在視圖views.py導(dǎo)入模型所定義的類,我們把這個類稱之為數(shù)據(jù)表對象,然后在視圖函數(shù)里使用Django的數(shù)據(jù)庫操作方法,實現(xiàn)數(shù)據(jù)庫操作,從而獲取到數(shù)據(jù)表里的數(shù)據(jù)。
3、視圖函數(shù)獲取到數(shù)據(jù)之后,將數(shù)據(jù)以字典、列表或?qū)ο?#xff08;上下文context)的方式傳遞給HTML模板,并由模板引擎接收和解析,最后生成相應(yīng)的HTML網(wǎng)頁,在瀏覽器里展現(xiàn)出來。
更多關(guān)于數(shù)據(jù)庫查詢操作方面的文章,請查看:ORM之QuerySet API 和 ORM QuerySet查詢
參考鏈接:Django博客開發(fā)教程:體驗數(shù)據(jù)查詢
總結(jié)
以上是生活随笔為你收集整理的Django 3.2.5博客开发教程:体验数据查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django 3.2.5博客开发教程:一
- 下一篇: Django 3.2.5博客开发教程:体