欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django數(shù)據(jù)結(jié)果集序列化并展示實(shí)現(xiàn)過程

 更新時間:2020年04月22日 14:46:24   作者:小陸同學(xué)  
這篇文章主要介紹了Django數(shù)據(jù)結(jié)果集序列化并展示實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

示例為一對多的表關(guān)系,學(xué)生為多,老師為一,設(shè)置外鍵字段可以為空,也就是說關(guān)聯(lián)的老師被刪除該學(xué)生依然存在,只是相應(yīng)字段留空

class Teacher(models.Model):
  name = models.CharField(max_length=10,verbose_name='老師名稱')
  password = models.CharField(max_length=10,verbose_name='密碼')
  class Meta:
    verbose_name_plural = '教師表'
  def __str__(self):
    return self.name
class Student(models.Model):
  teacher = models.ForeignKey(to=Teacher,on_delete=models.SET_NULL,null=True,verbose_name='教師')
  name = models.CharField(max_length=10,verbose_name='學(xué)生名字')
  age = models.IntegerField(verbose_name='年齡')
  class Meta:
    verbose_name_plural = '學(xué)生表'
  def __str__(self):
    return self.name

     teacher = models.Teacher.objects.get(pk=id) # id=id的某位老師
students = teacher.student_set.all() # 以一表反向查詢多表,查詢這位老師的學(xué)生

此時,all()返回的是一個結(jié)果集。<QuerySet [<Student: 學(xué)生1>, <Student: 學(xué)生22>, <Student: 學(xué)生3>, <Student: 學(xué)生44>]>

這里要將這個結(jié)果傳給前端ajax需要先將其轉(zhuǎn)成json格式,但是這樣的一個結(jié)果集又不能使用json.dumps的。

我的方法是先給它轉(zhuǎn)成列表嵌套字典再進(jìn)行序列化操作

def index(request):
  if request.method == "GET":
    teacher_name = request.session.get('name')
    teacher = models.Teacher.objects.get(name=teacher_name)
    students = teacher.student_set.all()
    print(students)
    list = []
    for i in students:
      json_dict = {}
      json_dict['name'] = i.name
      json_dict['age'] = i.age
      list.append(json_dict)
    return JsonResponse(list,safe=False)  # 這里safe默認(rèn)為True,只接受參數(shù)為dict字典類型,非dict類型---“報(bào)錯:In order to allow non-dict objects to be serialized set the safe parameter to False.” safe=False之后list列表, tuple元祖, set集合就都可以

前端ajax接收參數(shù),并且循環(huán)變量當(dāng)前傳過去的列表

$('#submit2').click(function(){
      $.ajax({
        url:'/app1/index/',
        type:'GET',
        success:function(res){
          console.log(res)
          var str = ''
          for(var i = 0; i < res.length; i++){     # js中的for循環(huán)
            str += '<li>' + res[i]['name'] + '</li>'
            }
            $('#students').html(str)          
        }
      })      

    })

渲染效果如下圖所示

 <button id="submit2">點(diǎn)擊查看我的學(xué)生</button>
<p id="students"></p>

就是這個小小的按鈕,竟然在背后做了這么多事情,使得我們要的信息成功的展示在了下面的標(biāo)簽里[/code]

所以任何一份職業(yè)都不容易,沒有小角色,都是大人物

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 安裝Python的教程-Windows

    安裝Python的教程-Windows

    下面小編就為大家?guī)硪黄惭bPython的教程-Windows。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 利用python中的matplotlib打印混淆矩陣實(shí)例

    利用python中的matplotlib打印混淆矩陣實(shí)例

    這篇文章主要介紹了利用python中的matplotlib打印混淆矩陣實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python使用pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)流程

    Python使用pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)流程

    pyinstaller是一個非常簡單的打包python的py文件的庫,下面這篇文章主要給大家介紹了關(guān)于Python?Pyinstaller庫安裝步驟以及使用方法的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Django權(quán)限控制的使用

    Django權(quán)限控制的使用

    這篇文章主要介紹了Django權(quán)限控制的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • PyQt5實(shí)現(xiàn)無邊框窗口的標(biāo)題拖動和窗口縮放

    PyQt5實(shí)現(xiàn)無邊框窗口的標(biāo)題拖動和窗口縮放

    這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)無邊框窗口的標(biāo)題拖動和窗口縮放,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python使用keys() 獲取 Redis 數(shù)據(jù)庫中的所有鍵

    Python使用keys() 獲取 Redis 數(shù)據(jù)庫中的所有鍵

    哈希、列表、集合、排序集合、字符串、JSON 和流是 Redis 支持的眾多數(shù)據(jù)結(jié)構(gòu)之一,本文將討論獲取 Redis 數(shù)據(jù)庫中的所有鍵,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • Python?dbm庫利用鍵值對存儲數(shù)據(jù)

    Python?dbm庫利用鍵值對存儲數(shù)據(jù)

    Python中的dbm模塊提供了一種輕量級的數(shù)據(jù)庫管理工具,允許開發(fā)者使用鍵值對的形式存儲和檢索數(shù)據(jù),這篇文章將深入介紹dbm庫的使用,探討其基礎(chǔ)功能、高級特性以及實(shí)際應(yīng)用場景
    2023-12-12
  • 使用pandas的box_plot去除異常值

    使用pandas的box_plot去除異常值

    今天小編就為大家分享一篇使用pandas的box_plot去除異常值,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 舉例講解Linux系統(tǒng)下Python調(diào)用系統(tǒng)Shell的方法

    舉例講解Linux系統(tǒng)下Python調(diào)用系統(tǒng)Shell的方法

    這篇文章主要介紹了舉例講解Linux系統(tǒng)下Python調(diào)用系統(tǒng)Shell的方法,包括用Python和shell讀取文件某一行的實(shí)例,需要的朋友可以參考下
    2015-11-11
  • Python運(yùn)維自動化psutil模塊的監(jiān)控和管理深入探究

    Python運(yùn)維自動化psutil模塊的監(jiān)控和管理深入探究

    這篇文章主要為大家介紹了Python運(yùn)維自動化psutil模塊的監(jiān)控和管理深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評論