djiango表单及数据插入数据库

在django中,可以使用表单提交数据到数据库中,django表单与HTML表单有区别,接下来看表单创建要点:

第一要点:forms文件夹创建,在需要APP中创建froms项目文件夹。

第二要点:创建表单代码

froms.py

from django import forms

class MessageBoardForm(forms.Form):

        title=forms.CharField(max_length=100,min_length=2)

        content=forms.CharField(widget=forms.Textarea)

       #可以输入多行

        email=forms.EmailField()

        reply=forms.BooleanField(required=False)

第三个要点:

view.py

from django.shortcutsimport render,HttpResponse

from django.views.genericimport View

from .froms  import MessageBoardForm

#先导入render,django.views. View, froms.MessageBoardForm(这是上面表单class)

class IndexView(View):#记得一定要继承View

        def get(self,request):

                 form = MessageBoardForm()

                 return render(request,'index.html',context={'from':form})

         def post(self,request):

                 form = MessageBoardForm(request.POST)

                 if form.is_valid():

                       title=form.cleaned_data.get('title')

                       content = form.cleaned_data.get('content')

                       email=form.cleaned_data.get('email')

                       reply=form.cleaned_data.get('reply')

                       return HttpResponse('验证成功')

                else:

                       print(form.errors)

                       HttpResponse("验证失败")

当然,title,content等参数现在只是验证赋值但是没有使用。

第四个要点:

urls.py

from django.urlsimport path

from front_appimport views

urlpatterns = [

           path('admin/', admin.site.urls),

            path('',views.IndexView.as_view())

#默认就用主页访问,views.IndexView.as_view()这里的后面as_view()带括号,如果不带括号则出现as_view() takes 1 positional argument but 2 were given错误

]

显示效果

当然要连接数据可以,插入数据也是可以的。

在models.py中创建一个Article模板,这里直接说表格,通过迁移到数据库中。

然后在视图中加入
article=Article(title=title,content=content,email=email,reply=reply)

article.save()

如下图所示。

进入网页中提交数据,最后在数据库找到成功插入的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Django模板中向数据库插入值,我们需要借助视图函数和模型。 首先,创建一个视图函数来处理插入值的逻辑。在视图函数中,我们首先需要判断请求的方法是否为POST,因为我们只需要在POST请求时插入值。然后,我们需要从请求中获取需要插入的值,并使用相应的模型来创建一个数据库对象。接下来,我们可以调用该对象的save()方法来将数据保存到数据库中。 以下是一个简单的示例代码: ```python from django.shortcuts import render from .models import YourModel def insert_value(request): if request.method == 'POST': value = request.POST.get('value') # 从请求中获取需要插入的值 your_model = YourModel(value=value) # 创建一个数据库对象 your_model.save() # 将数据保存到数据库 return render(request, 'your_template.html') ``` 接下来,在模板文件`your_template.html`中,我们可以编写一个包含表单的HTML代码,以便用户可以输入需要插入的值。表单的提交按钮可以指向我们上面定义的视图函数。以下是一个简单的示例模板代码: ```html <form method="post" action="{% url 'insert_value' %}"> {% csrf_token %} <label for="value">Value:</label> <input type="text" id="value" name="value"> <input type="submit" value="Submit"> </form> ``` 在这个例子中,我们使用了Django的模板语言来生成一个包含表单的HTML代码。`{% csrf_token %}`是一个安全性方面的考虑,确保表单提交是受到保护的。`{% url 'insert_value' %}`用于生成视图函数的URL,这里假设我们将视图函数的名称定义为`insert_value`。 当用户提交表单时,视图函数将在后台处理数据,并将其保存到数据库中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值