django mysql 表单_Django---form表单提交数据到数据库(普通方法+Django的form类)

目标:

①、初始form的简单应用

②、使用Django的form组件完成新增一个帖子

方法一:普通方法

1、前端表单代码

{%csrf_token%}

提交

2、view中新增一个视图方法:

#新增一个帖子

defadd(request):

article_title=request.POST.get('article_title',"");

article_prief=request.POST.get('article_prief',"");

article_content= request.POST.get('article_content', "");

add_article=Article(article_title=article_title,article_prief_content=article_prief,article_content=article_content);--------->这是插入一篇帖子的方法

add_article.save();return render(request,'add.html',{'article_title':article_title,'article_prief':article_prief,'article_content': article_content,

})

3、调试结果:正常

be04605c649538745af935d215e0e286.png

方法二:使用form表单(建议!!!)

使用form表单的意义,可以对表单进行自动校验,包括各项数据均可以在表单类中定义好,客户端只需要渲染就可以了

1、新建一个forms.py的python文件

from django importforms-------->必须引入

from django import forms

class login_form(forms.Form):

#新增一个form类,在form中加入元素,比如下面,加入两个字符串,客户端的label名称定义,输入的最大值(指定后无法输入更多字符),

输入的最小值(指定后若少于该值会提示),指定错误信息(这是一个字典类型)

username=forms.CharField(label='用户名',min_length=2,max_length=5,error_messages={"required":"用户名不能为空"});

#即使什么都没有设置,它也已经帮你设置了默认不能为空

pwd=forms.CharField(label="密码");

2、在view中新增一个视图函数

deflogin_2(request):

form_obg=forms.login_form();//必须先实例化表单if request.method=="POST":

form_obg=forms.login_form(request.POST);---->将前端提交上来的字段加入表单ifform_obg.is_valid():---------------->通过表单中定义的规则对表单的所有数据进行检查,如果检查通过,说明验证通过return HttpResponse("登陆成功");return render(request,"login2.html",{'form_obj':form_obg});---------->最终都要返回表单字段

3、前端html

注册2

{% csrf_token %}

{{ form_obj.username.label }}---------->bootstrap的label有一个for属性{{ form_obj.username }} {{ form_obj.username.errors.0 }}----------------->这个是文本框(就是charField,文本域),输入的规则后台指定,错误

{{ form_obj.pwd.label }}{{ form_obj.pwd }} {{ form_obj.pwd.errors.0 }}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Django中使用LayUI和MySQL来实现表单的添加功能,你可以按照以下步骤进行操作: 1. 定义模型:首先,在Django的模型文件(`models.py`)中定义你的数据模型,然后运行迁移命令将模型映射到数据库中。例如,创建一个简单的学生模型: ```python from django.db import models class Student(models.Model): name = models.CharField(max_length=100) age = models.IntegerField() ``` 2. 创建表单:在Django表单文件(`forms.py`)中,创建一个表单来处理学生信息的输入。例如: ```python from django import forms from .models import Student class StudentForm(forms.ModelForm): class Meta: model = Student fields = ['name', 'age'] ``` 3. 编写视图函数:在视图文件(`views.py`)中编写一个视图函数来处理表单的添加操作。例如: ```python from django.shortcuts import render, redirect from .forms import StudentForm def student_create(request): if request.method == 'POST': form = StudentForm(request.POST) if form.is_valid(): form.save() return redirect('student_list') else: form = StudentForm() return render(request, 'student_form.html', {'form': form}) ``` 在这个视图函数中,我们根据请求的方法(GET或POST)来处理表单的展示和提交。如果是POST请求,我们将根据表单数据创建一个新的学生对象并保存到数据库中,然后重定向到学生列表页面;如果是GET请求,我们将展示一个空的表单供用户填写。 4. 创建模板文件:在模板文件中(`student_form.html`),使用LayUI的表单组件来展示学生信息的输入框和提交按钮。例如: ```html {% extends 'base.html' %} {% block content %} <form class="layui-form" method="post" action="{% url 'student_create' %}"> {% csrf_token %} <div class="layui-form-item"> <label class="layui-form-label">姓名</label> <div class="layui-input-block"> {{ form.name }} </div> </div> <div class="layui-form-item"> <label class="layui-form-label">年龄</label> <div class="layui-input-block"> {{ form.age }} </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="submit">提交</button> </div> </div> </form> {% endblock %} ``` 在这个模板中,我们使用Django的模板语法来渲染表单字段,并使用LayUI的样式和组件来美化表单的展示。 5. 配置URL映射:在URL配置文件(`urls.py`)中,将URL映射到视图函数。例如: ```python from django.urls import path from .views import student_create urlpatterns = [ path('students/create/', student_create, name='student_create'), ] ``` 这样,当访问`http://localhost:8000/students/create/`时,你将会看到一个使用LayUI展示的学生添加表单。 请确保已经正确加载LayUI的CSS和JS文件,以及引入了必要的LayUI样式和组件。如果你还没有引入LayUI的文件,请按照之前提到的步骤将LayUI的文件下载并放置在Django项目的静态文件目录中。 希望以上步骤能帮助你在Django中使用LayUI和MySQL来实现表单的添加功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值