Django 接收Post请求数据,并保存到数据库的实现方法


Posted in Python onJuly 12, 2019

要说基本操作,大家基本都会,但是有时候,有些操作使用小技巧会节省很多时间。

本篇描述的就是使用dict小技巧,保存到数据库,用来节省大家编码的工作量。

主要内容:通过for循环拿到post表单中的值并保存到一个dict中,然后通过**dict保存到数据库中。

1.用户提交了一个表单,表单内容包含csrf。

2.服务端除了表单中的csrf要过滤掉,其它的都要保存到数据库中。

3.具体看下方代码:

下面的代码分别为修改和保存,其中修改是根据ID修改的。

要注意,

1.保存前的resourcesOld和保存后再获取的resourcesNew是不一样的。

尤其是type【get_type_display()】这个方法,因为要对其进行转义显示,必须获取resourcesNew对象,不然是获取不到转义后的,值只能获取其原值。

2.其次是保存的写法,有的人喜欢用T_Resources.objects.create(id=id,name=name,age=age......),这样每次,

但是都这样写比较繁琐,所以用了下面的写法,两者结果相同,当然还有一种save的写法,这里就不再阐述了!

def resources(request):
  if request.method == 'GET':
    return render(request, 'docker/Resources.html', )
  else:
    systemDict = {}
    for key in request.POST:
      if key != 'csrfmiddlewaretoken':
        systemDict[key] = request_postData.get(key)
 
    if 'id' in request_postData:
      result = {'code': 401, 'message': '修改失败!', 'data': None}
      try:
        resourcesOld=T_Resources.objects.get(id=systemDict['id'])
        T_Resources.objects.filter(id=systemDict['id']).update(**systemDict)
        resourcesNew=T_Resources.objects.get(id=systemDict['id'])
        result['code'] = 201
        result['message'] = '修改成功'
        logInfo = "服务器IP:" + resourcesOld.ip + ","
        if resourcesOld.name != resourcesNew.name:
          logInfo += "名称:" + resourcesOld.name + "->" + resourcesNew.name + ','
        if resourcesOld.type != resourcesNew.type:
          logInfo += "类型:" + resourcesOld.get_type_display() + "->" + resourcesNew.get_type_display() + ','
        if resourcesOld.label != resourcesNew.label:
          oldLabel = list(T_Label.objects.filter(type='T_Resources', value__in=resourcesOld.label).values_list('name', flat=True))[0]
          newLabel = list(T_Label.objects.filter(type='T_Resources', value__in=resourcesNew.label).values_list('name', flat=True))[0]
          logInfo += "标签:" + oldLabel + "->" + newLabel + ','
        writeOperationLog(request, 1, '修改服务器成功,' + logInfo)
      except:
        pass
      return HttpResponse(json.dumps(result, ensure_ascii=False))
 
    else:
      result = {'code': 401, 'message': '添加失败!', 'data': None}
      try:
          id=T_Resources.objects.create(**systemDict).id
          resources=T_Resources.objects.get(id=id)
          result['code'] = 201
          result['message'] = '添加成功'
      except:
        pass
      return HttpResponse(json.dumps(result, ensure_ascii=False))

以上这篇Django 接收Post请求数据,并保存到数据库的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python:print格式化输出到文件的实例
May 14 Python
python简单贪吃蛇开发
Jan 28 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
在tensorflow中实现去除不足一个batch的数据
Jan 20 Python
Python json读写方式和字典相互转化
Apr 18 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 Python
python绘制分布折线图的示例
Sep 24 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 Python
python实现简单聊天室功能 可以私聊
Jul 12 #Python
pyinstaller参数介绍以及总结详解
Jul 12 #Python
利用Python模拟登录pastebin.com的实现方法
Jul 12 #Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 #Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 #Python
Django中celery执行任务结果的保存方法
Jul 12 #Python
python hough变换检测直线的实现方法
Jul 12 #Python
You might like
用PHP编写PDF文档生成器
2006/10/09 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
猫咪家具:CatsPlay
2018/11/03 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
学生评语集锦
2015/01/04 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python