def __init__(self, the_type, editable_key=True, **kw): inputs = [] if the_type is uci_raw.Value: if editable_key: inputs.append( Textbox("index", RegExp("Index must be a number", r"\d+"), description="Value index")) inputs.append( Textbox("content", NotEmpty(), description="Value content")) elif the_type is uci_raw.Option: if editable_key: inputs.append( Textbox("name", NotEmpty(), description="Option name")) inputs.append( Textbox("value", NotEmpty(), description="Option value")) elif the_type is uci_raw.List: if editable_key: inputs.append( Textbox("name", NotEmpty(), description="List name")) inputs.append( Textbox("first_content", NotEmpty(), description="First value content")) elif the_type is uci_raw.Section: if editable_key: inputs.append(Textbox("name", description="Section name")) inputs.append( Textbox("type", NotEmpty(), description="Section type")) inputs.append(Checkbox("anonymous", description="Anonymous")) else: raise ValueError("Unable to create form for type '%s'" % the_type) self.model_type = the_type super(UciRawForm, self).__init__(*inputs, **kw)
#!/usr/bin/env python # coding: utf-8 from SimpleAppServer import expose, test from httphandler import Response from simpletemplate import SimpleTemplate from validators import NotEmpty, RegexValidator from widgets import Text, Submit, Form editforms = (Text( 'username', u'ユーザ名', validators=(NotEmpty(), RegexValidator(r'[A-Za-z\d]')), ), Text( 'password', u'パスワード', validators=(NotEmpty(), RegexValidator(r'[A-Za-z\d]')), ), Submit('submit', u'ログイン')) loginform = Form(editforms, {'action': '/login', 'method': 'POST'}) base_body = """<html><body>%s</body></html>"""
("birthyear", "int"), ("gender", "int"), ("email", "text"), ("url", "text"), ("language1", "text"), ("language2", "text"), ("commment", "text")) p = path.join(path.dirname(__file__), "questionnaire.dat") con = sqlite3.connect(p) BaseMapper.setconnention(con) Profile.createtable(ignore_error=True) from validators import NotEmpty, IntValidator, IntRangeValidator,\ URLValidator, EmailValidator, ValidationError from widgets import Text, Select, Radio, Submit, Reset, Form languages = [("", "---")]+[(x, x) for x in ["Perl", "PHP", "Python", "Ruby"]] forms = ( Text("lastname", u"名字", validators=(NotEmpty(),)), Text("firstname", u"名前", validators=(NotEmpty(),)), Select("birthyear", u"生まれた年", options=[("0", "---")]+\ [(str(x), str(x)) for x in range(1900, 2007)], validators=(NotEmpty(), IntRangeValidator(1900, 2007),)), Radio("gender", u"性別", options=(("1", u"男性"), ("2", u"女性")), validators=(IntRangeValidator(1, 2),)), Text("Email", u"めーるあどれす", validators=(EmailValidator(),), attrs={"size":"40"}), Text("url", u"URL", validators=(URLValidator(),), attrs={"size":"40"}), Select("language1", u"一番好きな言語は?", options=languages, validators=(NotEmpty(),)), Select("language2", u"二番目に好きな言語は?",
class Rssurl(BaseMapper): rows = (("title", "text"), ("url", "text")) p = path.join(path.dirname(__file__), "urls.dat") con = sqlite3.connect(p) BaseMapper.setconnection(con) Rssurl.createtable(ignore_error=True) from validators import NotEmpty, IntValidator, URLValidator from widgets import Hidden, Text, Submit, Form editforms = (Text("title", u"タイトル", validators=(NotEmpty(), ), attrs={"size": 40}), Text("url", u"RSSのURL", validators=(URLValidator(), ), attrs={"size": 40}), Hidden( "item_id", u"ID", validators=(IntValidator(), ), ), Submit("submit", u"登録")) editform = Form(editforms, {"action": "/edit", "method": "POST"}) addforms = (Text("title", u"タイトル",
from simplemapper import BaseMapper class Rssurl(BaseMapper): rows=(('title', 'text'), ('url', 'text')) p=path.join(path.dirname(__file__), 'urls.dat') con=sqlite3.connect(p) BaseMapper.setconnection(con) Rssurl.createtable(ignore_error=True) from validators import NotEmpty, IntValidator, URLValidator from widgets import Hidden, Text, TextArea, Submit, Reset, Form editforms=(Text('title', u'タイトル', validators=(NotEmpty(),), attrs={'size':40}), Text('url', u'RSSのURL', validators=(URLValidator(),), attrs={'size':40}), Hidden('item_id', u'ID', validators=(IntValidator(),) ), Submit('submit', u'登録')) editform=Form(editforms, {'action':'/edit', 'method':'POST'}) addforms=(Text('title', u'タイトル', validators=(NotEmpty(),), attrs={'size':40}), Text('url', u'RSSのURL', validators=(URLValidator(),), attrs={'size':40}), Submit('submit', u'登録')) addform=Form(addforms, {'action':'/add', 'method':'POST'})
rows = (('lastname', 'text'), ('firstname', 'text'), ('birthyear', 'int'), ('gender', 'int'), ('email', 'text'), ('url', 'text'), ('language1', 'text'), ('language2', 'text'), ('comment', 'text')) p = path.join(path.dirname(__file__), 'questionnaire.dat') con = sqlite3.connect(p) BaseMapper.setconnection(con) Profile.createtable(ignore_error=True) from validators import NotEmpty, IntValidator, IntRangeValidator, \ URLValidator, EmailValidator, ValidationError from widgets import Text, Select, Radio, Submit, Reset, Form languages = [('', '---')] + [(x, x) for x in ['Perl', 'PHP', 'Python', 'Ruby']] forms = ( Text('lastname', u'名字', validators=(NotEmpty(),)), Text('firstname', u'名前', validators=(NotEmpty(),)), Select('birthyear', u'生まれた年', options=[('0', '---')] +\ [(str(x), str(x)) for x in range(1940, 2007)], validators=(NotEmpty(), IntRangeValidator(1900, 2007), )), Radio('gender', u'性別', options = (('1', u'男性'), ('2', u'女性')), validators = (IntRangeValidator(1, 2),)), Text('email', u'メールアドレス', validators=(EmailValidator(),), attrs={'size': '40'}), Text('url', u'URL', validators=(URLValidator(),), attrs={'size': '40'}), Select('language1', u'一番好きな言語は?', options=languages, validators=(NotEmpty(), )), Select('language2', u'に番目に好きな言語は?',
#!/usr/bin/env python # coding: utf-8 from simpleappserver import expose, test from httphandler import Response from simpletemplate import SimpleTemplate from validators import NotEmpty, RegexValidator from widgets import Text, Submit, Form editforms = (Text( "username", u"ユーザ名", validators=(NotEmpty(), RegexValidator(r"[A-Za-z\d]")), ), Text( "password", u"パスワード", validators=(NotEmpty(), RegexValidator(r"[A-Za-z\d]")), ), Submit("submit", u"ログイン")) loginform = Form(editforms, {"action": "/login", "method": "POST"}) base_body = """<html><body>%s</body></html>""" @expose def login_form(_request, values={}, errors={}): body = base_body % ("${form.display(values, errors)}") res = Response() t = SimpleTemplate(body) values["password"] = ""