python - 如何在 Django 上使用 POST 传递值?
问题描述
我尝试用 Django 做一个简单的数据库交互/简单的事情。现在,我只是做了一个简单的视图来在 html 表上显示来自数据库的信息,并且我正在尝试添加一个可以向数据库添加新信息的功能。
为此,我为表中存在的每个表列都有一个输入字段,并在数据库中添加一个添加按钮。我想让它使用 POST 方法。POST 请求将在视图上计算,该视图将在数据库中添加新值,并在页面上使用 html 表重定向,然后将显示添加的信息。
但是,我并没有设法找到我需要做的事情的解决方案。
这是我目前拥有的views.py:
from orders.models import Order #my model
class OrdersList(TemplateView):
template_name = "orderlist.html"
def get_context_data(self, **kwargs):
context = super(OrdersList, self).get_context_data(**kwargs)
orders = Order.objects.all()
#adding values from the model to the context
context['orders'] = []
i = 0
for order in orders:
context['orders'].append(i)
context['orders'][i] = {}
context['orders'][i]['id'] = i+1
context['orders'][i]['market_place'] = order.market_place
context['orders'][i]['purchase_date'] = order.purchase_date
context['orders'][i]['purchase_time'] = order.purchase_time
context['orders'][i]['amount'] = order.amount
context['orders'][i]['currency'] = order.currency
i = i + 1
#eventually, context['orders'] will be an array of dictionaries, one for each order present in the model
return context
和我的 urls.py
from orders.views import *
urlpatterns = [
path('', OrdersList.as_view(), name='home'),
path('add/', AddOrder.as_view(), name='add')
]
所以我打算在视图上创建 AddOrder 类,该类将获取通过 POST 方法发送的值,将它们添加到数据库中,并返回 orderlist.html
然而,当我试图在网上找到答案时,它都在使用 url() 行的 urls.py 文件上,而在 views.py 中,每个视图都有一个函数;而我使用 urls.py 上的 path() 和 view.py 上的每个视图一个类来学习 Django,所以这就是我尝试的方式,但我不知道该怎么做。
编辑:我在这方面不够清楚,但是模板上有一个表格,它将向 /add/ url 发送一个 POST 请求。
解决方案
推荐阅读
- python - 在 Pandas 中创建一个新列,该列使用映射将另一列的 val 减少为一组预定选项
- python - 通过 for 循环时,数据框中的最终值显示为不在数据框内
- tkinter - 如何为我的网络抓取程序设置 tkinter GUI?
- powershell - Powershell 函数字符串返回值包含超出预期/预期的值
- mongodb - 无法使用推送与 mongodb 聚合形成数组?
- laravel - 如何在 Laravel 8.* 中将图像存储为 URL
- javascript - React Native Component 在模态框内的其他组件下渲染
- azure-devops - Azure Pipelines - 从 python 脚本文件输出变量到管道变量
- python - 仅在使用 python 的目录中获取第一个文件夹的名称
- javascript - @CrossOrigin 不适用于 POST 方法