Django - 表单(Forms)

Django - 表单(Forms) 首页 / Django入门教程 / Django - 表单(Forms)

Django Forms 表单可用于将数据移入或移出模型。替代方法是 ModelAdmin 但建议仅由 superuser staff用户使用。 Web应用程序的最终用户必须从模板页面中的表单提交数据。 无涯教程可以选择使用 HTML ModelForm form 中创建字段。 在这两种情况下,都首先在 app 目录下创建一个名为 forms.py 的新文件。

    mysite    
        └── ...    
    myapp
        └── ...
        └── forms.py
                                

Django ModelForm

ModelAdmin 相似,可以使用 ModelForm 类,并创建一个链接到 models.py 下定义的字段的表单对象。 forms.py

    from django import forms
    from .models import Blog
    
    class BlogForm(forms.ModelForm):
        class Meta:
            model = Blog
            fields = '__all__'
                                

__all__ 包括模型类下的所有字段。您也可以使用字段名称的元组。

现在,此 ModelForm 对象将在 views.py 下使用,如下所示: views.py

    from django.shortcuts import render, redirect
    from .forms import BlogForm
    
    def my_view_function(request):
        form = BlogForm(request.POST or None)
        if form.is_valid():
            form.save()
            return redirect('/mypageurl/')
        return render(request, 'my_template_page.html', {'form':form})
                                
  • redirect                 -  此函数可以将请求重定向到给定的URL路径。
  • request.POST      -  提交表单数据。
  • is_valid()              -  此函数根据模型字段类型和选项验证表单数据。
  • save()                     -  此函数将数据保存在数据库中。

最后,无涯教程需要在模板页面中制作一个表单元素,如下所示: templates - my_template_page.html

<form method="POST">
    {% csrf_token %}
    {{ from.as_p }}
    <input type="submit" value="Submit" />
</form>
  • method =" POST"     -  它是指Http POST 请求。默认值为 GET
  • csrf_token                   -  这是一种安全令牌,可防止跨站点引用伪造
  • form                                 -  除了模型字段元素之外,还需要一个提交按钮才能触发 form 次任务。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

大规模数据处理实战 -〔蔡元楠〕

.NET Core开发实战 -〔肖伟宇〕

陶辉的网络协议集训班02期 -〔陶辉〕

React Hooks 核心原理与实战 -〔王沛〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

手把手教你落地DDD -〔钟敬〕

快速上手C++数据结构与算法 -〔王健伟〕

B端体验设计入门课 -〔林远宏(汤圆)〕

Rust 语言从入门到实战 -〔唐刚〕

好记忆不如烂笔头。留下您的足迹吧 :)