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跨文件全局变量的实现方法示例
Dec 10 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
Python实现翻转数组功能示例
Jan 12 Python
Python的argparse库使用详解
Oct 09 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
python+selenium实现自动抢票功能实例代码
Nov 23 Python
pandas通过loc生成新的列方法
Nov 28 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
Python依赖包迁移到断网环境操作
Jul 13 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 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 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
angularjs基础教程
2014/12/25 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
python把转列表为集合的方法
2019/06/28 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
python opencv调用笔记本摄像头
2019/08/28 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
python文件操作的简单方法总结
2019/11/07 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
考博自荐信
2013/10/25 职场文书
艺术设计专业个人求职信范文
2013/12/11 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
篮球比赛策划方案
2014/06/05 职场文书
国际金融专业自荐信
2014/07/05 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
Python生成九宫格图片的示例代码
2021/04/14 Python