Django HTML表单实例应用

Django HTML表单是Web开发中非常重要的一个部分,用于收集用户信息或者输入数据。在这篇文章中,我们将详细介绍Django HTML表单实例应用的方法并提供代码示例。

创建Django项目

首先,我们需要创建一个Django项目。如果没有安装Django,可以先进行安装。

django-admin startproject myproject

创建应用并配置路由

接下来,我们创建一个新的应用并配置路由。在终端运行以下命令:

python manage.py startapp myapp

然后,在myproject/myproject/urls.py文件中,添加以下代码:

from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

在myapp文件夹中,创建urls.py文件,并添加以下代码:

from django.urls import path
from . import views


urlpatterns = [
    path('', views.index, name='index'),
]

这个路由设置将使得我们可以在http://localhost:8000/ 上访问我们的表单。

创建表单模型

下一步,我们需要创建表单模型。在myapp/models.py文件中,添加以下代码:

from django.db import models

class Contact(models.Model):
    name = models.CharField(max_length=200)
    subject = models.CharField(max_length=200)
    message = models.TextField()

    def __str__(self):
        return self.name

在这个模型中,我们定义了三个字段:name,subject和message。name和subject都是CharField,其可以存储最大长度为200个字符的文本,而message是一个TextField,其也可以存储多行文本。

创建表单视图

接下来,我们需要创建表单视图。在myapp/views.py文件中,添加以下代码:

from django.shortcuts import render
from django.http import HttpResponseRedirect
from .models import Contact
from .forms import ContactForm

def index(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            subject = form.cleaned_data['subject']
            message = form.cleaned_data['message']
            Contact.objects.create(name=name, subject=subject, message=message)
            return HttpResponseRedirect('/')
    else:
        form = ContactForm()
    return render(request, 'index.html', {'form': form})

在这个视图中,我们使用了ContactForm表单,并在表单提交时,将表单数据添加到我们的Contact模型中。如果表单提交成功,用户将会被重定向到主页。

创建表单模板

最后一步,我们需要创建表单模板。在myapp/templates文件夹中,创建一个名为index.html的文件,并添加以下代码:

{% extends 'base.html' %}

{% block content %}
<h1>Contact Us</h1>
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Submit</button>
</form>
{% endblock %}

在这个模板中,我们扩展了base.html,然后使用Django的模板语言渲染了我们的表单。我们还添加了一个提交按钮,并且使用{% csrf_token %}来保证表单的安全性。

创建表单

最后,我们需要创建ContactForm表单。在myapp/forms.py文件中,添加以下代码:

from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(label='Name', max_length=200)
    subject = forms.CharField(label='Subject', max_length=200)
    message = forms.CharField(label='Message', widget=forms.Textarea)

在这个表单中,我们定义了三个字段:姓名,主题和信息。

现在我们已经完成了Django HTML表单实例应用方法的所有步骤!

总结:

通过这篇文章的学习,我们已经了解了Django HTML表单实例应用的所有步骤。我们从创建Django项目开始,创建了一个新的应用并配置了路由。接着创建了一个表单模型、表单视图和表单模板。最后我们创建了ContactForm表单。Django HTML表单可以用于收集用户信息或者输入数据,这对于Web开发非常重要。在编写代码时,我们还学习了Django的模板语言和Django的表单工具。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django HTML表单实例应用 - Python技术站

(0)
上一篇 2023年3月12日
下一篇 2023年3月12日

相关文章

  • 启动Django项目

    Django是一个高效、灵活、模块化的Python web框架,用于快速开发Web应用程序。Django的核心包括模型、视图和模板,它们可以帮助开发人员快速构建功能强大的Web应用程序,并提供一种易于使用的API来连接不同的组件。 在这篇文章中,我们将学习如何启动Django项目。下面是详细的步骤: 首先,确保你安装了Python。 你需要安装Python才…

    Django 2023年3月12日
    00
  • Django笔记十七之group by 分组用法总结

    本文首发于微信公众号:Hunter后端原文链接:Django笔记十七之group by 分组用法总结 这篇笔记介绍 Django 里面 model 的 group by 对应的一些操作。 用到的 Model 如下: class TestModel(models.Model): num = models.IntegerField() user_id = mod…

    2023年4月10日
    00
  • Django3.X使用富文本编辑器kindereditor上传图片时一直转圈圈,如何解决

    问题描述: 在写bbs项目的时候,老师用的是Django1.X结合富文本编辑器kindeditor,实现了图片上传,但是我在用Django3.X的时候,代码和老师一模一样,上传图片的时候一直转圈圈???但是文件夹article_img已经创建,并且图片已经成功上传到服务端。 如下图: 各部分代码截图如下 add_article.html   {% exten…

    2023年4月10日
    00
  • django2 + python3 显示静态文件中的图片

    之前一直搞不出来 是因为图片的问题,步骤也就是固定的几步,到位了就差不多成了文件夹结构:. ├── HelloWorld │   ├── __init__.py │   ├── __pycache__ │   │   ├── __init__.cpython-36.pyc │   │   ├── settings.cpython-36.pyc │   │  …

    Django 2023年4月12日
    00
  • Django WebEditor(CKeditor)

    涉及到的文件会在文章结尾给出下载地址!   1) 将 ckeditor 放在某个位置,只要你的settings可以搜索到,比如,我放在目录第一层,setting设置如下: INSTALLED_APPS = ( ‘ckeditor’, ) 2) 将静态文本放在static下。 目录结构应该为 : –static/    –ckeditor/        …

    Django 2023年4月13日
    00
  • Django使用联合主键

    今天闲着没事,突然想起一个以前遇到的一个小问题。一直忘了来验证自己的解决方案,所以今天特意来查询了些资料来验证下自己的想法。整理如下:   单张表内建立联合主键: class IotTemp(models.Model): mac = models.CharField(max_length=64, blank=False) temperature = mode…

    Django 2023年4月15日
    00
  • Django框架中间件(Middleware)用法实例分析

    下面是详细讲解“Django框架中间件(Middleware)用法实例分析”的完整攻略。 一、中间件概述 Django框架中间件(Middleware),指的是处于请求和响应处理之间的一层拦截层。中间件是在Django处理请求的过程中运行的,而非在应用程序中直接运行。 在Django中,中间件可以用于拦截请求或响应,处理请求或响应,以及更改请求或响应。它增加…

    Django 2023年5月16日
    00
  • django-evolution 插件维持Django 模型和数据库结构一致的基本原理

    django_evolution 插件中用于保存上个数据库版本的字符串为: “latest_version.signature”= unicode: (dp1\nS’sessions’\np2\nccopy_reg\n_reconstructor\np3\n(cdjango.utils.datastructures\nSortedDict\np4\nc__b…

    Django 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部