99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀使用python實現生成用戶信息
使用python實現生成用戶信息
2018-02-26
收藏

使用python實現生成用戶信息

今天練習的時候要展示一個從用戶信息列表,就想把他做成信息和修改在一起的一個網頁,方便用戶修改內容

考慮到要把信息和值分開放,那么肯定是字典了,因為需要保證位置不變,使用有序字典

考慮到需要解析方便和好看點,所以讓models.py中返回的就直接是”k1 v1 k2 v2”格式

第一步:

修改models.py文件,將之前的分割符全部去掉,使用空格分割

為了省事和可讀的折中吧,沒有使用格式化字符串的時候沒有用關鍵字

def __str__(self):
    return "email {0} idcard {1} adress {2} phonenumber {3}".format(
      self.email, self.idcard, self.adress, self.phonenumber
    )


第二步:

修改views.py,把字符串整合成有序字典

from collections import OrderedDict as ordic
 
@login_required
def msg(request):
  msg = UserMsg.objects.filter(whoami=request.user)
   
  for item in msg:
    msglist = str(item).split(" ")
 
  msgkey = msglist[::2]
  msgvalue = msglist[1::2]
  msgs = ordic(zip(msgkey,msgvalue))
  context = {'msg':msgs}
 
  return render(request, 'usermsg/msg.html', context)

獲取列表的時候也可以用列表生成器, 像這樣就行
    
>>>[str(i).split() for i in msg][0]
>>>['email', 'xxxxxx@163.com', 'idcard', '12', 'adress', '13', 'phonenumber', '14']

最后展示在頁面就行了,簡單的放到表格里了,沒有繼續(xù)處理
<table border="0">
   {% for key,value in msg.items %}
   <br>
   <tr>
     <td> {{key}} </td>
     <td> :{{ value }} </td>
     <td> <a href="#" rel="external nofollow" value="change{{ key }}"> 修改{{ key }}
 </a> </td>
   </tr>
  {% endfor %}
</table>
就是這樣了,嗯,好丑



數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }