使用python实现生成用户信息
今天练习的时候要展示一个从用户信息列表,就想把他做成信息和修改在一起的一个网页,方便用户修改内容
考虑到要把信息和值分开放,那么肯定是字典了,因为需要保证位置不变,使用有序字典
考虑到需要解析方便和好看点,所以让models.py中返回的就直接是”k1v1k2v2”格式
第一步:
修改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,把字符串整合成有序字典
fromcollectionsimportOrderedDictasordic @login_required defmsg(request): msg=UserMsg.objects.filter(whoami=request.user) foriteminmsg: msglist=str(item).split("") msgkey=msglist[::2] msgvalue=msglist[1::2] msgs=ordic(zip(msgkey,msgvalue)) context={'msg':msgs} returnrender(request,'usermsg/msg.html',context)
获取列表的时候也可以用列表生成器,像这样就行
>>>[str(i).split()foriinmsg][0] >>>['email','xxxxxx@163.com','idcard','12','adress','13','phonenumber','14']
最后展示在页面就行了,简单的放到表格里了,没有继续处理
{%forkey,valueinmsg.items%}
{%endfor%} {{key}} :{{value}} 修改{{key}}
就是这样了,嗯,好丑