如何从Django中的视图向数据库发送数据?

时间:2019-04-21 11:02:56

标签: python django database

我在Django项目中创建了一个表单,现在我希望该表单与数据库进行交互。

基本上,当用户输入一些数据时,必须将其发送到数据库。注意:我的django项目中已经有一个数据库,我在 settings.py 上定义了它,但是我不能将数据发送到该数据库,而应该发送到一个不同的数据库,因为该数据库将与另一个Python脚本进行交互。

现在,我不知道如何在Django中使用另一个数据库?我应该在哪里定义整个第二个数据库配置?

这是我目前的基本看法:

def input(request):
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = InputForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            # ...
            # redirect to a new URL:
            messages.success(request, f"Success")

    # if a GET (or any other method) we'll create a blank form
    else:
        form = InputForm()

    return render(request,
                  "main/data.html",
                  context={"form":form})

1 个答案:

答案 0 :(得分:1)

您需要在设置中定义第二个数据库,请参见: https://docs.djangoproject.com/fr/2.2/topics/db/multi-db/

然后,您将像这样将表单保存在特定的数据库中: form.save(using='database_name')

或者如果您将其用于项目中的特定模型,则可以重载该模型的保存方法以存储在另一个DB中:

class SomeModel(models.Model):
    foo = models.CharField(max_length=100)

    def save(self, ...): # ALL the signature
        super(SomeModel, self).save(using='database_name')