您的位置:首页 > 编程语言 > Go语言

Django自定义form表单

2018-11-22 10:12 274 查看
版权声明:小仙女的博客,不支持无偿复制粘贴转载 https://blog.csdn.net/qq_40655579/article/details/84334579

1.在app文件夹下创建forms.py文件,文件名称固定不可修改
创建自定义form表单对象

from django import forms
class CustomForm(forms.Form):
ba=forms.IntegerField(label='数字',widget=forms.TextInput(attrs={'placeholder':'输入数字a','name':'ba','class':'number_A'}))
# label参数对应的就是<label for="a">数字a:</label>
# widget表示控件,input就是一个控件。如果默认控件提供的功能不够用,那么可以重新定制控件。比如input控件默认没有显示placeholder。

# xxxField()和xxxInput()两者进行区分:
# xxxField()决定了输入框中能输入的数据类型。
# 而xxxInput()一般和xxxField()是对应的,它xxxInput()一般是用来重写控件的属性
# required表示该输入框的值是否是必须填写的,默认为True。

2.自定义完成后在视图函数,模板文件中使用

{# 模板文件#}
<form action="{% url 'form' %}" method="post">
{% csrf_token %}
{{ form }}
<button type="submit">转换</button>
{% if resultf %}
16进制转换结果:{{ resultf }} <br>
{% endif %}
</form>

视图函数

def form(request):
#在使用cleaned_data之前,一定要通过is_valid()判断数据的合法性。否则cleaned_data这个字典就是不存在的。只有通过is_valid()验证之后,才会生成这个cleaned_data字典。
form=CustomForm(data=request.POST)
if form.is_valid():
a = form.cleaned_data['ba']
print(a,type(a))
result = hex(a).lstrip('0x')
return render(request, 'index.html', {'form':form,'resultf': result})

是不是很简单很方便呢?

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: