django之从html页面表单获取输入的数据实例

1. 介绍

在使用Django开发Web应用程序时,与用户进行交互的一种常见方式是通过HTML表单。用户可以在表单中输入数据,然后将其发送到服务器以进行处理。本文将演示如何使用Django从HTML页面的表单中获取输入的数据,并进行相应的处理。

2. 创建Django应用程序

首先,我们需要创建一个Django应用程序。在命令行中,使用以下命令创建一个新的Django项目:

django-admin startproject myproject

然后进入项目目录:

cd myproject

接下来,我们需要创建一个名为“myapp”的Django应用程序:

python manage.py startapp myapp

在项目的settings.py文件中,将应用程序添加到INSTALLED_APPS列表中:

INSTALLED_APPS = [

...

'myapp',

]

3. 创建HTML模板

myapp应用程序的目录中,创建一个名为templates的文件夹。在该文件夹中,创建一个名为index.html的文件。

index.html文件中,添加一个包含表单的HTML代码:

<form action="{% url 'myapp:process_data' %}" method="post">

{% csrf_token %}

<label for="name">Name:</label>

<input type="text" id="name" name="name" required>

<br>

<input type="submit" value="Submit">

</form>

以上代码定义了一个包含一个文本输入框和一个提交按钮的表单。表单的action属性指向一个用于处理数据的URL,并且我们使用了Django的CSRF保护。

4. 定义URL和视图函数

myapp应用程序的目录中,打开urls.py文件并添加以下代码:

from django.urls import path

from myapp import views

app_name = 'myapp'

urlpatterns = [

path('', views.index, name='index'),

path('process_data/', views.process_data, name='process_data'),

]

以上代码定义了两个URL路由。第一个路由将根URL映射到index视图函数,将用户导航到包含表单的HTML页面。第二个路由将process_dataURL映射到process_data视图函数,用于处理用户提交的表单数据。

接下来,在views.py文件中添加以下代码:

from django.shortcuts import render

def index(request):

return render(request, 'myapp/index.html')

def process_data(request):

if request.method == 'POST':

name = request.POST.get('name')

return render(request, 'myapp/success.html', {'name': name})

以上代码定义了两个视图函数。第一个视图函数index用于渲染包含表单的HTML页面,即index.html。第二个视图函数process_data用于处理用户提交的表单数据。在这里,我们通过request.POST.get('name')获取用户在表单中输入的姓名,并将其传递到success.html模板中进行显示。

5. 显示成功页面

templates文件夹中,创建一个名为success.html的文件,并添加以下代码:

<h2>提交成功!</h2>

<p>您的姓名是:<strong>{{ name }}</strong></p>

以上代码定义了一个简单的HTML页面,在页面中显示用户提交的姓名。

6. 运行Django服务器

现在,我们已经完成了Django应用程序的开发。在命令行中,运行以下命令启动Django服务器:

python manage.py runserver

在浏览器中访问http://localhost:8000/myapp/,将会看到包含表单的页面。在表单中输入姓名并点击“提交”按钮,将会导航到显示成功页面,其中显示了用户输入的姓名。

7. 结论

本文演示了如何使用Django从HTML页面的表单中获取用户输入的数据,并进行相应的处理。通过创建HTML模板和定义URL和视图函数,我们能够实现用户与服务器之间的数据交互。这为我们开发功能强大的Web应用程序提供了基础。

在实际的应用程序开发中,还可以对表单数据进行验证和处理,以满足具体的需求。此外,还可以使用Django的表单类来简化表单的创建和处理。

后端开发标签