Django案例之ORM資料修改案例

2021-09-28 15:29:25 字數 2021 閱讀 6222

對資料進行增加和編輯操作

一共涉及兩張關聯表操作

class business(models.model):

caption = models.charfield(max_length=32)

code = models.charfield(max_length=32,null=true,default="sa")

class host(models.model):

nid = models.autofield(primary_key=true)

hostname = models.charfield(max_length=32,db_index=true)

ip = models.genericipaddressfield(protocol="ipv4",db_index=true)

port = models.integerfield()

b = models.foreignkey(to="business", to_field='id',on_delete=models.cascade)

def host(request):

if request.method == "get":

v1 = models.host.objects.filter(nid__gt=0)

v2 = models.host.objects.filter(nid__gt=0).values('nid','hostname','b_id','b__caption')

v3 = models.host.objects.filter(nid__gt=0).values_list('nid','hostname','b_id','b__caption')

b_list = models.business.objects.all()

return render(request, 'host.html', )

elif request.method == "post":

h = request.post.get('hostname')

i = request.post.get('ip')

p = request.post.get('port')

b = request.post.get('b_id')

models.host.objects.create(hostname=h,

ip=i,

port=p,

b_id=b

)return redirect('/host')

//ajax請求處理

def test_ajax(request):

ret =

try:

h = request.post.get('hostname')

i = request.post.get('ip')

p = request.post.get('port')

b = request.post.get('b_id')

if h and len(h) > 5:

models.host.objects.create(hostname=h,

ip=i,

port=p,

b_id=b)

else:

ret['status'] = false

ret['error'] = "太短了"

except exception as e:

ret['status'] = false

ret['error'] = '請求錯誤'

前端頁面設計:

序號主機名

ip埠業務線名稱

操作

}}}}

}編輯|刪除

Django之ORM資料對映

資料對映在django中的應用 1 一對一關係 models.onetoonefield 相當於唯 一 外來鍵 2 一對多關係 models.foreignkey 3 多對多關係 models.manytomanyfield 相當於關聯表中建立兩個唯一外來鍵關聯 比如有書 描述表 出版社 作者這4張...

Django資料之ORM外來鍵操作

如果公共關鍵字在乙個關係中是主關鍵字,那麼這個公共關鍵字被稱為另乙個關係的外來鍵。建立外來鍵 表一 class foo models.model name models.charfield max length 1 表二class business models.model id caption m...

django之ORM查詢操作(二)

過濾器 基於所給的引數限制查詢的結果 count 返回當前查詢的總條數 aggregate 聚合 exists 判斷查詢集中是否有資料,如果有則返回true,沒有則返回false 2.快取 查詢集的結果被存下來之後,再次查詢相同資料時會使用之前快取的資料 user列表資訊檢視 def userlis...