- “可能不存在的键值”:在获取python字典内的值的时候,如果数据不存在就会出发KeyError异常。所以为了优雅的处理这个方面的问题一般使用try/except语句,或使用python字典的get方法
- ‘|’ 操作符
在上面的代码中,books是一个列表对象。第一个‘|’操作符表示了books的长度,第二个过滤器在适当的时候会输出s。{% if books %} <p>Found{{ books|length }}book {{books|pluralize}}.</p> <ul> {% for book in books %} <li>{{ book.title }}</li> {% endfor %} </ul> {% else %} <p>No books matched your search criteria.</p> {% endif %}
- Form的cleaned_data属性。 这是一个包含赶紧的提交数据的字典。Django的form矿建不但校验数据,他还会把他们转化成相应的Python类型数据,这叫做清理数据。
- From里的textarea:应该被显示为textarea标签的表单默认是text标签。所以需要通过设置widget来完成所需要的功能。
message=forms.CharField(widget=forms.Textarea)
- 为form添加额外的校验。也就是田间一个clean_message()方法。
class ContactForm(forms.Form): subject = forms.CharField(max_length=100) email = forms.EmailField(required=False) message = forms.CharField(widget=forms.Textarea) def clean_message(self): message = self.cleaned_data['message'] num_words = len(message.split()) if num_words < 4: raise forms.ValidationError("Not enough words!") return message #Django的form系统会自动寻找匹配函数方法,该方法一clean_开头,并以字段名称为结束。如果有这样的方法,他将在校验时调用。
- Form指定标签 :HTML中生成的标签是自动生成的,如email会生成Email,下划线转化为空格。还可以通过制定标签来完成。
class ContactForm(forms.Form): subject = forms.CharField(max_length=100) email = forms.EmailField(required=False, **label='Your e-mail address'** ) message = forms.CharField(widget=forms.Textarea)
初学python
最新推荐文章于 2023-09-09 08:51:26 发布