最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django實(shí)現(xiàn)將后臺(tái)model對(duì)象轉(zhuǎn)換成json對(duì)象并傳遞給前端jquery

 更新時(shí)間:2020年03月16日 11:59:54   作者:huoyuanshen  
這篇文章主要介紹了django實(shí)現(xiàn)將后臺(tái)model對(duì)象轉(zhuǎn)換成json對(duì)象并傳遞給前端jquery,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

1、django的model轉(zhuǎn)json對(duì)象。

1.1、單個(gè)modle轉(zhuǎn)換,返回json對(duì)象:

sqlOrder = get_object_or_404(SqlOrder,id=request.GET.get("id"))
objJson = serialize('json',[sqlOrder])[1:-1]
{"model": "sqlapply.sqlorder", "pk": 2, "fields": {"work_id": "{now}{_ran}", "username": "admin", "status": 3, "type": 0, "backup": 0}}

注意:objJson["fields"]["username"] 才能獲得想要屬性值。objJson["pk"]獲得主鍵值。

1.2、querySet轉(zhuǎn)換:

json_data = serializers.serialize("json", MyModel.objects.all())

2、轉(zhuǎn)換后的json對(duì)象作為子元素傳遞到前端:

2.1、將json對(duì)象轉(zhuǎn)換成字符串。(單引號(hào)包含屬性)。

objStr = json.loads(objJson)

2.2、組拼json對(duì)象。

response_data = {'statcode': '1', 'data':objStr}

2.3、返回前進(jìn)行對(duì)象轉(zhuǎn)換:

return HttpResponse(json.dumps(response_data))

2.4、前端接受并獲?。?/p>

 $.ajax({
      url: "{% url 'sqlapply:auditSqlOrder' %}",
      type:"GET",
      data:{"id":id,"args":"getObjById"},
      success:function(result){
        res = jQuery.parseJSON(result);  #關(guān)鍵代碼?。。?!解析一個(gè) JSON 字符串'{"name":"John"}'為Json對(duì)象。
        if (res["statcode"] == "1") {
          objStr = res["data"];
          console.log(objStr["fields"]["username"]);#獲取方式1
      alert(objStr.fields.username);#獲取方式2
        }
      },
      error:function(){
        alert("訪問異常,請(qǐng)截圖聯(lián)系管理員 \t\n ErrorNO:auditSqlOrder.getObjById")
      }
    });

補(bǔ)充知識(shí):django 將model轉(zhuǎn)換成想要的json格式

model:

class SysRole(models.Model):
  id = models.CharField(db_column='ID', primary_key=True, max_length=50) # Field name made lowercase.
  rolename = models.CharField(db_column='RoleName', max_length=50) # Field name made lowercase.
  description = models.CharField(db_column='Description', max_length=200, blank=True, null=True) # Field name made lowercase.
  querycode = models.CharField(db_column='QueryCode', max_length=200, blank=True, null=True) # Field name made lowercase.
  isdisabled = models.CharField(db_column='IsDisabled') # Field name made lowercase. This field type is a guess.
 
  def __unicode__(self):
    return self.rolename
  # 將屬性和屬性值轉(zhuǎn)換成dict 列表生成式
  def toDict(self):
    return dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]])#type(self._meta.fields).__name__
  class Meta:
    managed = False
    db_table = 'sys_role'
# 遍歷查詢集 調(diào)用model屬性轉(zhuǎn)換成dict
def queryset_to_json(queryset):
    obj_arr=[]
    for o in queryset:
        obj_arr.append(o.toDict())
    return obj_arr
  # 獲取角色分頁列表
  def get_roles_page(self,_page,_limit):
    _roles = SysRole.objects.all()[(int(_page)-1)*int(_limit):int(_page)*int(_limit)]
    _count = SysRole.objects.all().count()
    _dict_roles = tools.queryset_to_json(_roles)
    _data_page_json = {}
    _data_page_json['Rows']=_dict_roles
    _data_page_json['Total']=_count
    return json.dumps(_data_page_json,ensure_ascii=False)

在model上加入toDict方法 然后執(zhí)行查詢 得到queryset 遍歷它 將queryset里的每個(gè)model執(zhí)行他的todict方法 轉(zhuǎn)換成字典格式 之后統(tǒng)一調(diào)用json.dumps方法轉(zhuǎn)json

以上這篇django實(shí)現(xiàn)將后臺(tái)model對(duì)象轉(zhuǎn)換成json對(duì)象并傳遞給前端jquery就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python利用多線程優(yōu)化for循環(huán)的技巧分享

    Python利用多線程優(yōu)化for循環(huán)的技巧分享

    多線程可以讓程序同時(shí)執(zhí)行多個(gè)任務(wù),從而提高整體運(yùn)行效率,這篇文章將詳細(xì)介紹如何在Python中使用多線程來優(yōu)化for循環(huán),感興趣的可以了解下
    2025-02-02
  • python中內(nèi)置庫csv的使用及說明

    python中內(nèi)置庫csv的使用及說明

    這篇文章主要介紹了python中內(nèi)置庫csv的使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 9種python web 程序的部署方式小結(jié)

    9種python web 程序的部署方式小結(jié)

    python有很多web 開發(fā)框架,代碼寫完了,部署上線是個(gè)大事,通常來說,web應(yīng)用一般是三層結(jié)構(gòu)web server ---->application -----> DB server
    2014-06-06
  • Python通過paramiko庫實(shí)現(xiàn)遠(yuǎn)程執(zhí)行l(wèi)inux命令的方法

    Python通過paramiko庫實(shí)現(xiàn)遠(yuǎn)程執(zhí)行l(wèi)inux命令的方法

    這篇文章主要介紹了Python通過paramiko庫實(shí)現(xiàn)遠(yuǎn)程執(zhí)行l(wèi)inux命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • django報(bào)錯(cuò)設(shè)置auth User的解決

    django報(bào)錯(cuò)設(shè)置auth User的解決

    本文主要介紹了django報(bào)錯(cuò)設(shè)置auth User的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 使用Python實(shí)現(xiàn)WebSocket服務(wù)器與客戶端通信功能

    使用Python實(shí)現(xiàn)WebSocket服務(wù)器與客戶端通信功能

    WebSocket?是一種基于?TCP?協(xié)議的通信協(xié)議,能夠在客戶端與服務(wù)器之間進(jìn)行全雙工(雙向)通信,相比傳統(tǒng)的?HTTP?協(xié)議,WebSocket?可以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的傳輸,我通過?Python?實(shí)現(xiàn)一個(gè)簡(jiǎn)單的?WebSocket?服務(wù)器,并使其與客戶端進(jìn)行通信,需要的朋友可以參考下
    2024-12-12
  • Pyqt5 基本界面組件之inputDialog的使用

    Pyqt5 基本界面組件之inputDialog的使用

    今天小編就為大家分享一篇Pyqt5 基本界面組件之inputDialog的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • pandas對(duì)指定列進(jìn)行填充的方法

    pandas對(duì)指定列進(jìn)行填充的方法

    下面小編就為大家分享一篇pandas對(duì)指定列進(jìn)行填充的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python中正則表達(dá)式詳解

    Python中正則表達(dá)式詳解

    Python 的 re 模塊(Regular Expression 正則表達(dá)式)提供各種正則表達(dá)式的匹配操作,Python 會(huì)將正則表達(dá)式轉(zhuǎn)化為字節(jié)碼,利用 C 語言的匹配引擎進(jìn)行深度優(yōu)先的匹配。
    2017-05-05
  • 使用Python內(nèi)置模塊與函數(shù)進(jìn)行不同進(jìn)制的數(shù)的轉(zhuǎn)換

    使用Python內(nèi)置模塊與函數(shù)進(jìn)行不同進(jìn)制的數(shù)的轉(zhuǎn)換

    這篇文章主要介紹了使用Python內(nèi)置模塊與函數(shù)進(jìn)行不同進(jìn)制的數(shù)的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論

达孜县| 东山县| 新昌县| 九龙城区| 攀枝花市| 北安市| 平山县| 兴安县| 平和县| 蓬莱市| 达日县| 藁城市| 朝阳市| 板桥市| 中江县| 章丘市| 靖宇县| 祥云县| 枣阳市| 舟曲县| 赤壁市| 甘谷县| 古田县| 社会| 随州市| 阿图什市| 双柏县| 凌海市| 望江县| 贵定县| 昌都县| 墨玉县| 商南县| 土默特左旗| 繁昌县| 雷山县| 宁武县| 珲春市| 泽州县| 常熟市| 尚志市|