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 相关文章推荐
打开电脑上的QQ的python代码
Feb 10 Python
Python自动连接ssh的方法
Mar 07 Python
Python Socket使用实例
Dec 18 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
int在python中的含义以及用法
Jun 27 Python
linux中如何使用python3获取ip地址
Jul 15 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
Python持续监听文件变化代码实例
Jul 22 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 Python
python基于opencv批量生成验证码的示例
Apr 28 Python
教你如何使用Python Tkinter库制作记事本
Jun 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安装问题
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(4)
2006/10/09 PHP
用php将任何格式视频转为flv的代码
2009/09/03 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
JavaScript内存管理介绍
2015/03/13 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
用pycharm开发django项目示例代码
2019/06/13 Python
Django框架模板用法入门教程
2019/11/04 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
对教师的评语
2014/04/28 职场文书
数据保密承诺书
2014/06/03 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
html中两种获取标签内的值的方法
2022/06/16 jQuery