注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

郁夫的博客

我爱你们,只是你们不知道!

 
 
 

日志

 
 
 
 

在GAE和Django中使用wtforms备忘  

2013-10-17 16:16:19|  分类: Google |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
由于在GAE中使用了ndb, 需导入相关模块支持

from wtforms import Form 
from wtforms.ext.appengine.ndb import model_form
from wtforms import validators

定义一个模型表单 CurveSel
CurveSel = model_form(CurveWord, base_class=Form, exclude=('fgroupclass', 'fuser'),
        field_args={
       'fnumlimit': {
           'label': u'每组数量',
           'description': 'Your name',
           #'widget': WidgetPrebind(w.TextArea(),
       },
       'fsdate': {
           'label': u'开始日期',
           #'validators': [validators.NumberRange(min=14, max=99)],
       },
       'fedate': {
           'label': u'结束日期',
           'description': 'Your name',
       },
       'fstime': {
           'label': u'开始记忆时间',
           #'validators' : [validators.Length(min=4, max=100000)],
       },
       'fmail': {
           'label': u'邮件提醒',
           #''validators' : [validators.Required(), validators.Length(min=5)],
       },
    })

视图中使用此form ,注意和Django自带 form的不同,开始忘记.data,导致取数据错误。

def curveadd(request):
#    curuser=request.session.get('username', 'tongjp'),
    if request.method == "GET":
        form = bforms.CurveSel
        return render_to_response('word/newcurve.html',{'curvesel':form})
    if request.method == "POST":

        form =  bforms.CurveSel(request.POST)
        if form.validate():
            '''if form.fmail == 'y': 
                smail=True
            else:
                smail=False '''             
            curverec=CurveWord(
            fuser='tongjp',
            fnumlimit=form.fnumlimit.data,
            fgroupclass='newword',
            fsdate=form.fsdate.data,
            fedate=form.fedate.data,
            fstime=form.fstime.data,            
            fmail=form.fmail.data,
            )

            curvereckey = curverec.put()
        proresult = Procode.query(Procode.fstateid==0)
        sprocode=proresult.get() #取的key
        results=Nword.query(Nword.fdate>=curverec.fsdate,Nword.fdate<=curverec.fedate)
        recsum=results.count(limit=1000)
        groupnum=int(ceil(recsum*1.0/curverec.fnumlimit))

        while groupnum>0:
            cruvegrp=CurveGroup(
              fcurveword = curvereckey,
              fgroupnum = groupnum,
              fstateid = sprocode,
              fstime = curverec.fstime+datetime.timedelta(days=(groupnum-1)*3),               
              fuser = curverec.fuser,
              fsmail = curverec.fmail
            )
            cruvegrp.put()
            groupnum = groupnum-1            
            
    return render_to_response('word/newcurve.html')  

模板中使用Form,格式为 {% form_field 表单.字段.属性 %}

{% extends 'wordbase.html' %}
{% load wtforms %}

{% block jqury %}
<script type="text/javascript" src="/static/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/js/jqueryuimin.js"></script>
<script type="text/javascript" src="/static/js/jquery.ui.datepicker-zh-CN.js"></script>
<link href="/static/css/smoothness/jquery-ui-1.10.3.custom.min.css" rel="stylesheet" type="text/css" />
{% endblock %}

{% block title %}
记忆曲线单词组设定
{% endblock %}

{% block content %}
<body>

{{ curvesel.field }} 

<form action="/curveadd/" method="post">
{% for field in curvesel %}
        {% form_field field.label%}
        {% form_field field%}
        <p>
{% endfor %}
<input type="submit" value="提交"></input>
</form>

<!--<form action="/curveadd/" method="post">
  {{ curvesel.as_p }}
<input type="submit" value="提交"></input>
</form>-->

{% endblock %}

{% block script %}
<script type="text/javascript">
  $(document).ready(function() {   
       $('#fsdate').datepicker(); 
       $('#fedate').datepicker();
       $('#fstime').datepicker();
  }); 
</script>
{% endblock %}

  评论这张
 
阅读(455)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017