在这一部分,我们将继续扩展我们的 Django 应用,添加表单、静态文件和处理用户输入的功能。以下是第三部分的步骤:

步骤1:创建表单

在 helloworldapp/forms.py 中创建一个表单类,用于接收用户输入:
# helloworldapp/forms.py

from django import forms

class GreetingForm(forms.Form):
    message = forms.CharField(label='Your Message', max_length=100)

步骤2:更新模型

在 helloworldapp/models.py 中,为 Greeting 模型添加一个方法,用于创建新的消息:
# helloworldapp/models.py

from django.db import models

class Greeting(models.Model):
    message = models.TextField()

    @classmethod
    def create(cls, message):
        greeting = cls(message=message)
        return greeting

步骤3:更新视图

在 helloworldapp/views.py 中,更新 hello 视图函数,使其能够处理表单的提交:
# helloworldapp/views.py

from django.shortcuts import render, redirect
from .models import Greeting
from .forms import GreetingForm

def hello(request):
    if request.method == 'POST':
        form = GreetingForm(request.POST)
        if form.is_valid():
            message = form.cleaned_data['message']
            Greeting.objects.all().delete()  # 删除现有的消息
            Greeting.objects.create(message=message)  # 创建新的消息
            return redirect('hello')
    else:
        form = GreetingForm()

    greeting = Greeting.objects.first()
    return render(request, 'helloworldapp/hello.html', {'greeting': greeting, 'form': form})

步骤4:更新模板

在 helloworldapp/templates/helloworldapp/hello.html 中,更新模板以显示表单并接受用户输入:
<!-- helloworldapp/templates/helloworldapp/hello.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello Django</title>
</head>
<body>
    <h1>{{ greeting.message }}</h1>
    
    <form method="post" action="{% url 'hello' %}">
        {% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Update Message">
    </form>
</body>
</html>

步骤5:配置 URL 路由

在 helloworldapp/urls.py 中,确保 URL 路由配置正确:
# helloworldapp/urls.py

from django.urls import path
from .views import hello

urlpatterns = [
    path('hello/', hello, name='hello'),
]

步骤6:运行开发服务器

确保你的开发服务器正在运行:
python manage.py runserver

现在,你可以在浏览器中访问 http://127.0.0.1:8000/helloworld/hello/,应该能够看到消息和一个表单,通过表单你可以更新消息。

这样,你的 Django 应用已经包含了表单、处理用户输入的功能。在后续学习中,你可以进一步了解 Django 的用户认证、静态文件、部署等更高级的主题。


转载请注明出处:http://www.zyzy.cn/article/detail/7125/Django