梅科尔工作室-Django入门(4)

利用shell修改表单数据

我们提前在预先准备的personal_info文件夹中创建一个forms的python文件:

写入如下程序:

from django import forms


class PersonCreateForm(forms.Form):

    name = forms.CharField(max_length=255)
    age = forms.IntegerField()
    gender = forms.BooleanField()
    id_card = forms.CharField(max_length=18)
    address = forms.CharField(max_length=255)
    temperature = forms.FloatField()

 打开底部终端(Terminal)窗口:

输入如下代码:

PS E:\djangoProject> python manage.py shell

即可打开相应文件进行修改。

在本文件中我们选择其中的PersonCreateForm函数:

from personal_info.forms import  PersonCreatForm

输入想要保存的数据即可:

>>> form = PersonCreateForm(date={'name': '王二狗', 'age': 20, 'gender': 2, 'id_card': '1102928388534344', 'address': '北京市', 'temperature':'37.5'})

在form表单里使用的一些小代码:

>>> form.is_valid()
方法函数is_valid()的作用检查seld.errors是否都正确,例如长度,空值,类型等

form表单只有经过form.is_valid()验证后,才能获取form.cleaned_data和form.errors 

>>> form.erors

假如form.is_valid()验证后输出False,则form.erors输出错误的信息

注意:因为form和model没关系,所以即使是在form中验证成功了,在保存数据的时候依旧回报错,form中验证的是写在form中的限定条件,这个条件不一定和model中的一致,就比如我们现在gender=2,form并没有验证出来错误,但是在model中上传数据时因为限定了gender只能为1或0,所以就会报错。

 假如form.is_valid()验证后输出True,则form.erors输出空字符串


普通View与Form配合

(1)先新建立一个html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登记人员信息</title>
</head>
<body>
    <form anction="{% url 'personal_info:person_create' %}" method="post">
        {% csrf_token %}
        <p><label>名字:<input type="text" name="name"></label></p>
        <p><label>年龄:<input type="number" name="age"></label></p>
        <p><label>性别:<select name="gender">
            <option value="1">男</option>
            <option value="0">女</option>
        </select></label></p>
        <p><label>身份证:<input type="text" name="id_card"></label></p>
        <p><label>住址:<input type="text" name="address"></label></p>
        <p><label>体温:<input type="number" name="temperature" steo="0.1"></label></p>
        <p><button type="submit">保存</button></p>

    </form>
</body>
</html>

接着在view.py文件中写入引用代码:

from django.shortcuts import render

# Create your views here.
from django.views.generic import ListView
from personal_info.models import Person
from django.views.generic import View



class PersonCreateView(View):
    def get(self, request, *args, **kwargs):
        return render(request, 'personal_info/person_create.html')

然后在urls.py中:

from django.urls import path
from personal_info.views import PersonList
from personal_info.views import PersonCreate


app_name = 'personal_info'

urlpatterns = [
    path('', PersonList.as_view(), name='person_list'),
    path('craete/', PersonCreate.as_view(), name='person_create'),
]

 完成所有操作后我们便可以运行程序来打开页面,当然首先我们跳转到的是person_list的页面,那么怎样从person_list页面跳转到person_create页面,只需要在person_list.html中table表单下加上一句代码即可

<p><a href={% url 'personal:peraon_create' %}>登记</a></p>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值