物联网笔记-----------Django之models&json(一)
来源:互联网 发布:java microservice 编辑:程序博客网 时间:2024/05/15 08:19
一、Django中自己创造有关models的json串,并解析json串的实验:
1、models.py
from django.db import modelsfrom django.utils import timezonefrom . import IzUtilsimport jsonclass Proclas(models.Model): Pcid = models.BigAutoField(db_column='PcID', primary_key=True) Pcname = models.CharField(db_column='PcName', max_length=20) def __str__(self): return '{"Pcid":%s,"Pcname":%s}'%(self.Pcid,self.Pcname); class Meta: managed = False db_table = 'vd_proclas'class Admins(models.Model):#管理员 adminId = models.BigAutoField(db_column='adminId', primary_key=True) adminName = models.CharField(db_column='adminName', max_length=255) adminPass = models.CharField(db_column='adminPass', max_length=255) adminPhone = models.CharField(db_column='adminPhone', max_length=20) adminTel = models.CharField(db_column='adminTel', max_length=20) class Meta: managed = False db_table = 'vd_admins'class Adminops(models.Model): opId = models.BigAutoField(db_column='opId', primary_key=True) # Field name made lowercase. opTime = models.DateTimeField(db_column='opTime',default=timezone.now) # Field name made lowercase. opCon = models.TextField(db_column='opCon') # Field name made lowercase. admin = models.ForeignKey('Admins', models.DO_NOTHING, db_column='adminId') # 是一个Admins对象 def __str__(self): return json.dumps({"opTime":self.opTime,"opCon":self.opCon,"admin":self.admin.adminId});# class Meta: managed = False db_table = 'vd_adminops'views.py
def initgoodnum(request):中
proc=Proclas(Pcid=2,Pcname="饮料");proc.save()print(proc);#{"Pcid": 2,"Pcname":饮料}pro=str(proc);print(pro);admin=get_object_or_404(Admins,adminId=1);opCon='{"action":添加商品种类,'+'"info":'+str(proc)+'}';print(opCon)ops=Adminops(opTime=datetime.now().strftime('%Y-%m-%d %H:%M:%S'),opCon=opCon,admin=admin);ops.save()#数据库中Adminops中增加一条记录。ops=str(ops)#返回的是json。#ops = json.loads(ops)#print(ops.get('admin',2))data={'ops':ops};#{键值:json串}print(data)ret = requests.post('http://192.148.34.137:8000/saler/test/',data=data);#本主机上进行的requests.post测试。print(ret.text);return HttpResponse('initgood success')
def test(request):if request.method=="POST":try:#多行注释代码,Ctrl+k,取消注释,ctrl+shift+kops=request.POST.get('ops','');print(ops)ops=json.loads(ops)print(ops);admin=get_object_or_404(Admins,adminId=ops['admin'])adminops=Adminops(opTime=ops['opTime'],opCon=ops['opCon'],admin=admin);adminops.save();#接收完request后,自己这一边又生成Adminops的一条记录data={"static":1}except:data={"static":"exception error"}else:data={"static":0}data=json.dumps(data);return HttpResponse(data);
结果显示为:
数据库中的结果:
二、
data是个字典,发给proclas_dlcl(request)方法,是以字典的形式发过去的。
键的值json格式:
data={"lists": [{"pro": {"Pcid": 1,"Pcname":'aaaa',},"ops": {"opTime": "2017-12-23 12:23:34","opCon": {"action": "添加商品种类","info": {"Pcid": 670,"Pcname": "computer"}},"adminId": 1}}]}
某方法对其的解析:
def procla_dlcl(request):if request.method=="POST":try:lists=request.POST.get("lists",default='');#获取字典键lists的值,json格式lists=json.loads(lists);#对值进行解析,成list列表。for i in range(len(lists)):#遍历列表。每个元素是字典形式。然而元素,字典中的键的值又是一个json。data=lists[i];pro=data['pro']pro=json.loads(pro);proclas=get_object_or_404(Proclas,Pcid=pro['pcId'])proclas.delete();ops=data['ops']ops=json.loads(ops);admin=get_object_or_404(Admins,adminId=ops['admin'])adminops=Adminops(opTime=ops['opTime'],opCon=ops['opCon'],admin=admin)adminops.save();ret="{Status:1}"except Exception:ret="{Status:0}"else:ret="{Status:0}"print(ret)ret=json.dumps(ret)return HttpResponse(ret)
阅读全文
0 0
- 物联网笔记-----------Django之models&json(一)
- 物联网笔记-----------Django之Json&list转str(二)
- 物联网笔记-----------Django之templatetags
- 物联网笔记-----------Django单元测试,Django bug(一)
- Django Meta小节(一)之models.Model
- Django学习笔记之——Models
- Django笔记-Models
- Django笔记-Models总结
- Django笔记-Models
- Django models笔记
- 物联网笔记-----------Django之template分页的实现
- Django之models
- django中将models以json形式返回
- 物联网笔记-----------Django单元测试,Django bug(二)
- Django 学习笔记(二) 《models》
- Django Models
- django models
- Django Models
- codevs 2602 最短路径问题 Floyd 解题报告
- 51nod1174 区间中最大的数
- CodeForces 758C Unfair Poll(模拟)
- IO流,集合,集合遍历,键盘录入,综合性题目,新手练习必备
- 关于联通块DP的一些问题(to be continued)
- 物联网笔记-----------Django之models&json(一)
- [Leetcode-394]【Stack】Decode String
- BZOJ 1011 数学 解题报告
- 一个有用的pom文件
- Windows下安装matplotlib
- 一句话说明白Java线程池中shutdown和shutdownNow的区别
- [树上启发式合并 && 哈希] Codeforces 741D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
- hdu 6178 Monkeys dfs匹配
- 第五章 数组与字符串 5.1 数组