我在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})
答案 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')