【问题标题】:how to get value from html form into database using django python如何使用 django python 从 html 表单中获取值到数据库中
【发布时间】:2013-01-25 12:39:01
【问题描述】:

我是 python 和 django 的新手,我在将 html 页面的各个字段存储到数据库中时遇到了困难。 例如,我有一个 html 页面,其中包含 5 个字段和一个提交按钮。在提交表单时,我希望 html 表单中的所有值都应该存储在给定数据库的表中。 请帮帮我。

【问题讨论】:

标签: python django


【解决方案1】:
models.py

from django.contrib.auth.models import User
from django.db import models

class AllocationPlan(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=50)
    data = models.CharField(max_length=4096)
    total = models.DecimalField(max_digits=10, decimal_places=2)

forms.py

from django import forms
from django.forms import ModelForm
from app_name.models import AllocationPlan   

class AllocationPlanForm(ModelForm):
    class Meta:
        model = AllocationPlan

views.py

from django.shortcuts import render
from app_name.forms import AllocationPlanForm

def add(request):
    if request.method == 'POST':
        form = AllocatinPlanForm(request.POST)
        if form.is_valid():
            form.save()
return render(request, 'page.html', {
    'form': AllocationPlanForm()
})

 page.html

 <form method="post">{% csrf_token %}
     {% for field in form %}
     {{field}}
     <input type="submit" value="Submit"/>
     {% endfor %}
 </form>

【讨论】:

  • 如果我这样做了,那么我会在 forms.py 和 views.py 中收到关于 AllocationPlanForm 的错误“未定义变量 AllocationPlan”
  • 这只是一个示例,您可以使用自己的模型。跟着模式就行了
  • 有什么我们需要在 forms.py 中导入的,因为如果我在写“model=model_name”,我会得到一个错误未定义的变量
  • 如果您再次遇到错误,请检查您放置文件的位置(models.py、forms.py ....)。
  • 我有一个纯 html 表单,它接受用户的输入。我希望用户的所有输入值在提交时都存储在 mysql db 中。而且我没有在我的 html 表单中使用的
    标签中写什么
【解决方案2】:

您应该从模型的角度来处理这个问题,模型将模型的属性映射到数据库字段,并且可以方便地用于创建表单。这称为Object-Relational Mapping

首先在您的应用文件夹中创建(或修改)models.py,然后在其中声明模型(基本上是您要存储的字段)。如前所述,请参阅 Django 的 creating formsmodel-form mapping 教程。

【讨论】:

  • 我创建了models.py,它包含表的所有字段。在 java 中,我们使用 getter 和 setter 来存储来自任何 html 表单的值。那么你能给我一个例如说明将表单字段存储到数据库的例子吗?以 html 形式取任意字段名称。
  • @Abhay,Sami 已为您提供了该信息。您是否费心点击 modelform 文档的链接?那里都有描述。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
相关资源
最近更新 更多