【发布时间】:2015-07-29 17:46:52
【问题描述】:
我是 Django 的新手。我想从我的 html 表单中插入一些数据到我的数据库表中,实际上我不想使用 django 表单,只有在 html 文件中创建的简单表单。我不知道该怎么做有什么办法吗?如果是,请帮助我。
谢谢
【问题讨论】:
-
您需要创建一个视图来处理 POST 请求。
我是 Django 的新手。我想从我的 html 表单中插入一些数据到我的数据库表中,实际上我不想使用 django 表单,只有在 html 文件中创建的简单表单。我不知道该怎么做有什么办法吗?如果是,请帮助我。
谢谢
【问题讨论】:
要处理带有 POST 参数 data1、data2、... dataN 的 POST 请求,您可以执行以下操作。这使用基于类的视图 (CBV)。
from django.views.generic.base import View
from django.http import HttpResponse
class MyView(View):
def get(self, request):
do_something()
return HttpResponse('GET Success!')
def post(self, request):
# Retrieve POST parameters
data1 = request.POST.get('data1', '')
data2 = request.POST.get('data2', '')
# ...
dataN = request.POST.get('dataN', '')
# Perform whatever validations you need
perform_validations()
# Create your object based on validated user input.
YourModel.objects.create(
data1=data1,
data2=data2,
# ...
dataN=dataN
)
# Do whatever else you need to.
do_something_else()
# Return a response.
return HttpResponse('POST Success!')
您也可以使用基于函数的视图 (FBV) 编写一个,但就个人而言,我只使用 FBV 来轻松测试想法或使用 CBV 很痛苦。
from django.views.generic.base import View
from django.http import HttpResponse
def my_view(request):
if request.method == 'GET':
do_something()
return HttpResponse('GET Success!')
elif request.method == 'POST':
# Retrieve POST parameters
data1 = request.POST.get('data1', '')
data2 = request.POST.get('data2', '')
# ...
dataN = request.POST.get('dataN', '')
# Perform whatever validations you need
perform_validations()
# Create your object based on validated user input.
YourModel.objects.create(
data1=data1,
data2=data2,
# ...
dataN=dataN
)
# Do whatever else you need to.
do_something_else()
# Return a response.
return HttpResponse('POST Success!')
【讨论】: