Python Djongo 获取表单中下拉选项中的值

在现代 web 开发中,表单处理是一个不可或缺的部分。尤其是在处理与数据库交互的项目中,如何获取用户输入的数据就显得尤为重要。本文将阐述如何使用 Django 与 Djongo 进行表单处理,特别是如何从下拉选项中获取用户选择的值。我们将以一个简单的示例为基础,逐步深入了解这一过程。

什么是 Djongo?

Djongo 是一个 Django 的数据库适配器,能够让 Django 直接与 MongoDB 交互。这意味着你可以利用 Django 的 ORM 而无需转换到 SQL 语句,使得使用 MongoDB 进行开发变得相对简单。在 Django 中使用 Djongo,可以在表单中收集用户输入,并且将其保存到 MongoDB 数据库。

创建 Django 项目和应用

首先,确保你已经安装了 Django 和 Djongo。如果没有,请使用以下命令进行安装:

pip install django djongo
  • 1.

接下来,创建一个新的 Django 项目和应用:

django-admin startproject myproject
cd myproject
django-admin startapp myapp
  • 1.
  • 2.
  • 3.

然后,在 settings.py 中配置数据库:

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'mydatabase',
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

创建模型

myapp/models.py 中,定义一个简单的模型。假设我们要创建一个旅行表单,用户可以选择目的地:

from djongo import models

class Destination(models.Model):
    name = models.CharField(max_length=100)
    
    class Meta:
        verbose_name_plural = "Destinations"
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

使用以下命令将模型迁移到数据库:

python manage.py makemigrations
python manage.py migrate
  • 1.
  • 2.

创建表单

myapp/forms.py 中,定义一个表单,用户可以从下拉选项中选择目的地:

from django import forms
from .models import Destination

class TravelForm(forms.Form):
    destination = forms.ModelChoiceField(queryset=Destination.objects.all(), label="选择目的地")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

创建视图

接下来我们需要创建一个视图来处理表单的展示与提交。在 myapp/views.py 中,添加如下代码:

from django.shortcuts import render, redirect
from .forms import TravelForm
from .models import Destination

def travel_view(request):
    if request.method == 'POST':
        form = TravelForm(request.POST)
        if form.is_valid():
            selected_destination = form.cleaned_data['destination']
            # 处理选择后的逻辑,比如保存到数据库
            return redirect('success')  # 重定向到成功页面
    else:
        form = TravelForm()

    return render(request, 'travel.html', {'form': form})
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

创建模板

myapp/templates/ 目录中,创建一个名为 travel.html 的模板:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>旅行表单</title>
</head>
<body>
    选择你的旅行目的地
    <form method="POST">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">提交</button>
    </form>
</body>
</html>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

路由配置

myproject/urls.py 中,配置路由以指向我们的视图:

from django.contrib import admin
from django.urls import path
from myapp.views import travel_view

urlpatterns = [
    path('admin/', admin.site.urls),
    path('travel/', travel_view, name='travel'),
]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

运行服务器

完成上述步骤后,运行 Django 开发服务器:

python manage.py runserver
  • 1.

在浏览器中访问 `

使用 Mermeid 创建旅行图

为了更好地展示旅行过程,我们可以使用 Mermaid.js 绘制旅行图。以下是我们的旅行流程图:

旅行选择过程 System User
用户输入
用户输入
User
输入目的地
输入目的地
提交表单
提交表单
User
点击提交按钮
点击提交按钮
数据处理
数据处理
System
验证数据有效性
验证数据有效性
System
保存数据
保存数据
重定向
重定向
System
跳转到成功页面
跳转到成功页面
旅行选择过程

小结

本文介绍了如何使用 Python 的 Django 和 Djongo(MongoDB)来处理表单,尤其是如何从下拉选项中获取用户选择的值。通过创建模型、表单、视图和模板,我们实现了一个简单的旅行表单,用户可以选择目的地并提交。希望这篇文章能够帮助你在项目中更好地处理表单数据。继续探索 Django 与 Djongo 的更多功能,将会是一个非常愉快的旅程!