django post和get方法获取数据 数据在模板上的遍历

 两个问题:

1.在使用django时,前台页面使用post或者get方法给后台传递数据 django如何获得

首先可以用HttpRequest.method 方法判断是post还是get

request.method==POST 或者request.method==GET  (注意post和get一定大写)

然后用request.POST或者request.GET就可以获取数据字符串,该字符串是QueryDict对象格式。所以要是想取出数据要了解QueryDict的使用(和python字典类似)

 或者大家也可以print一下看一看格式。(request.body也可以显示数据,但是他是byte类型的,不是字符串!!)

QueryDict简单使用就是假如你的参数里有个username,要想获取它的值可以request.POST['username']

2.你的views数据传递到模板template上如果是list即[]格式遍历的话

{%for obj in obj_list%}

{{obj}}就取到了

{%endfor%}

另外obj如果是字典的话如何遍历呢?

{% for key,value in obj.items %}
{{ key }} 和{{vaule}}就可以使用
{% endfor%}

最后一点 :如果你是return render_to_response('模板名’,传递的数据) 注意传递的数据应该是个字典,key值是你在模板中要保持一致的名字如obj_list,obj

 欢迎大家交流。。。

Django框架中,处理POST请求并更新数据库对象通常需要通过一系列的步骤来完成。为了提高效率和代码的简洁性,我们可以使用字典来优化这一过程。在Django中,`request.POST`是一个类似字典的QueryDict对象,包含了所有的POST请求数据。 参考资源链接:[Django快速保存Post数据数据库的技巧](https://wenku.csdn.net/doc/645341c7ea0840391e778f6c) 首先,需要从`request.POST`中过滤掉CSRF令牌等安全相关的字段,提取出实际需要处理的数据。可以使用循环遍历`request.POST`,将需要的字段添加到一个字典中,例如`systemDict`。这一步骤是确保只处理用户提交的有效数据,同时排除掉任何可能的CSRF令牌。 处理完数据后,接下来是根据`systemDict`中的数据来更新或创建数据库中的对象。如果字典中包含`id`字段,则意味着我们需要更新一个已存在的对象。使用`T_Resources.objects.get(id=systemDict['id'])`来获取这个对象的实例,然后使用`T_Resources.objects.filter(id=systemDict['id']).update(**systemDict)`方法更新实例的所有字段。这里的双星号`**`操作符用于将字典解包成关键字参数,这样就可以动态地更新所有提供的字段值。 如果数据是用来创建一个新的数据库记录,可以直接使用`T_Resources.objects.create(**systemDict)`方法,这将创建一个包含`systemDict`中数据的新对象,并且保存到数据库中。 在这个过程中,如果模型中有像`get_type_display()`这样的方法,需要特别注意。因为这些方法通常会返回一个基于模型字段的可读字符串,当你更新对象后,如果需要获取这个方法的返回值,可能需要重新从数据库中获取最新的对象实例,例如使用`resourcesNew = T_Resources.objects.get(id=systemDict['id'])`,然后调用`resourcesNew.get_type_display()`来获取最新的值。 以上流程展示了如何在Django中高效地处理POST请求数据,并更新或保存到数据库中。这种方法减少了重复代码的编写,提高了开发效率,并且使得代码更加清晰易懂。对于想要深入了解Django表单、模型以及数据处理的同学,建议参考《Django快速保存Post数据数据库的技巧》。这份资料不仅讲解了数据保存的技巧,还涉及到数据验证、CSRF保护等安全措施,是深入学习Django数据操作的宝贵资源。 参考资源链接:[Django快速保存Post数据数据库的技巧](https://wenku.csdn.net/doc/645341c7ea0840391e778f6c)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值