HTML表单验证和呈现

morf的Python项目详细描述


MORF-HTML表单验证和呈现

为什么使用morf?

因为您希望简洁地表达简单的表单:

from morf import HTMLForm, fields, validators

class ContactForm(HTMLForm):
    name = fields.Str(message='Please fill in your name')
    email = fields.Str(validators=[validators.is_email])
    message = fields.Str(validators=[validators.minwords(10)])

因为您希望能够表示自定义验证逻辑:

class BookingForm(HTMLForm):
    name = fields.Str(message='Please fill in your name')
    arrival_date = fields.Date()
    leaving_date = fields.Date()

    @validates(arrival_date, leaving_date)
    def check_name(self, arrival_date, leaving_date):

        # No minimum booking duration at weekends
        if arrival_date.weekday() in (SAT, SUN):
            return

        if (leaving_date - arrival_date).days < 3:
            self.fail('Sorry, the minimum booking is for 3 days')

因为您希望使用一个简单的api:

def my_view(request):
    form = BookingForm(request.POST)
    if form.isvalid:
        make_booking(form.data)
        ...
    else:
        show_error_page(errors=form.errors)

有关MORF的文档,请访问https://ollycope.com/software/morf/" rel="nofollow">https://ollycope.com/software/morf/

morf的源代码可以在https://bitbucket.org/ollyc/morf/" rel="nofollow">https://bitbucket.org/ollyc/morf/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何发送JSON post请求,并在restAssured中的请求正文中列出一个列表   java JBREM000202:远程连接58fb662d到/127.0.0.1:9990时突然关闭   swing如何在不传递ID的情况下识别运行在哪个Java小程序上下文中?   java在5个插槽中打印PDF   将rawbyte值转换为Java类型   JAVAutil。vCPU为2时并发Java runAsync和ForkJoin   javascript 2.9是14.5,对于给定的4个条目,分数为20,是否正确   java扫描程序构造函数导致bufferedReader返回null   JavaFacebook图形API:获取给定用户的评论   java在循环中创建JButtons只会导致最后一个出现   java调用二维数组   java Testng不工作   转换ß。在java中使用toUpperCase()将cfg转换为大写   用java调用C++ DLL   java格式化Excel工作表中的日期