【问题标题】:How to insert data into tables using html forms instead of Django forms?如何使用 html 表单而不是 Django 表单将数据插入表中?
【发布时间】:2015-07-29 17:46:52
【问题描述】:

我是 Django 的新手。我想从我的 html 表单中插入一些数据到我的数据库表中,实际上我不想使用 django 表单,只有在 html 文件中创建的简单表单。我不知道该怎么做有什么办法吗?如果是,请帮助我。

谢谢

【问题讨论】:

  • 您需要创建一个视图来处理 POST 请求。

标签: html django forms


【解决方案1】:

要处理带有 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!')

其他资源 hereherehere

【讨论】:

  • 谢谢你,效果很好,我用了第二个。
  • 很高兴能帮上忙!如果您没有进一步的问题或澄清,请接受此答案以造福他人!谢谢!
猜你喜欢
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 2021-04-21
  • 1970-01-01
  • 2019-02-06
相关资源
最近更新 更多