最近想複習一下與django資料庫有關的操作方法,於是便重新搭建了乙個以部落格為目的的django服務,只是乙個demo演示,沒有前端,資料通過postman請求,以json的形式返回,也沒有考慮資料不存在等異常情況。
在foreignkey中有乙個屬性是related_name,通過這個屬性,與它相關聯的字段可以通過這個屬性值找到這個字段。
#blog.models
#encoding:utf-8
from __future__ import unicode_literals
from django.db import models
class author(models.model):
author_id = models.integerfield(null=true)
name = models.charfield(max_length=100)
age = models.integerfield()
friends = models.manytomanyfield("self") #關聯自身的多對多屬相,朋友
def __str__(self):
return self.name
#獲取作者詳細資訊
def getauthordetail(self):
data =
return data
class blog(models.model):
author = models.foreignkey(author,null=true,related_name="author") #將博文與作者關聯起來
title = models.charfield(max_length=100)
abstract = models.textfield()
def __str__(self):
return self.title
#獲取博文的資訊
def getblogdetail(self):
data =
return data
class comment(models.model):
content = models.textfield()
def __str__(self):
return self.content
def get_comment_detail(self):
data =
return data
class likes(models.model):
blog = models.foreignkey(blog,null=true,related_name="blog") #點讚關聯文章
author = models.foreignkey(author,null=true,related_name="likes_author") #點讚關聯作者
amount = models.integerfield(default=0)
def __str__(self):
return self.author
#獲取點讚詳情
def get_likes_detail(self):
data =
return data
在admin中加入相關字段,便於後台管理,本節直接在後台新增資料,暫不使用post方法來新增資料。
遇到的乙個小坑是在新增資料時後台管理對中文新增的不支援,加入一下三行就好了
以類似的方法新增blog,comment等。
articles = author.author.all() #通過article的關聯欄位author找到author對應的文章
for article in articles:
result['articles'] = articles_list
return jsonresponse(result, status=200)
def get_all_comment_of_author(request):
result =
comment_list =
author_id = request.post['id']
author = author.objects.get(author_id=author_id)
articles = author.author.all()
for article in articles:
for comment in comments:
result["comments"] = comment_list
return jsonresponse(result,status=200)
注意其中對foreignkey和manttomanykey的一些用法。
這樣,開啟django服務,我們就能看到想要的結果:
接下來會考慮介紹詳細的有關查詢的操作和考慮部落格訪問許可權的問題。
Django資料庫操作API
資料庫操作api 型別描述 exact 精確匹配 polls.get object id exact 14 iexact 忽略大小寫的精確匹配 polls.objects.filter slug iexact foo 匹配 foo,foo,foo,等等.contains 大小寫敏感的內容包含測試 p...
Django資料庫ORM操作
簡單的說,orm是通過使用描述物件和資料庫之間對映的元資料,將程式中的物件自動持久化到關聯式資料庫中。orm在業務邏輯層和資料庫層之間充當了橋梁的作用。讓我們從o r開始。字母o起源於 物件 object 而r則來自於 關係 relational 幾乎所有的軟體開發過程中都會涉及到物件和關聯式資料庫...
C 資料庫操作例項
最近學習了c 乙個例項程式,對access資料庫的單個表檔案進行操作的例子。其中包括了對資料的查詢,新增,刪除,更新。其中用到的內容總結如下 1 程式類劃分 user類 資料類,與資料庫中的myuser表相對應 connectdatabase類 連線字串生成,負責生成連線字串 manageuser類...