У меня довольно глупый вопрос.HTML WebPy multilpe forms
Я пытаюсь приложение и иметь две формы на нем:
Введите почтовый индекс (кнопка отправки)
или
Войти, если у вас уже есть идентификатор пользователя. (кнопка отправки)
Теперь в моем коде (python с использованием рамки web.py
) у меня есть два def POST(self)
, но какой будет первая форма и вторая форма для входа в систему?
Я смущен. Теперь мой друг говорит, что html не может иметь две разные формы.
Вот код и форма являются неполными - я просто пытаюсь заставить методы работать хорошо, прежде чем я начну захватывать больше данных и строить схему db.
import web
from web import form
render = web.template.render('templates/')
urls = (
'/', 'index'
)
myform = form.Form(
form.Textbox("Zip Code",
form.regexp('^\d{5}$', 'Not a zip code'),
description='Enter a 5 digit zip code',
maxlength = '5'),
)
myloginform = form.Form(
form.Textbox("Username",
form.regexp('^[^<>\s\@]+(\@[^<>\s\@]+(\.[^<>\s\@]+)+)$', 'Invalid username'),
description='Enter your username'),
)
class index:
def __init__(self): ** i still dont know wtf this does..
pass
def GET(self):
form = myform()
myloginform1 = myloginform()
return render.index(form,myloginform1)
def POST(self):
form = myform()
if not form.validates():
return render.index(form)
else:
return "The zip code you are located is: %s" % (form['Zip Code'].value)
def POST(self):
myloginform1 = myloginform()
if not myloginform1.validates():
return render.index(myloginform1)
else:
return "Welcome %s" % (myloginform1['Username'].value)
class testfunc:
def GET(self):
return "Test function returning!"
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
index.html
ниже
$def with (form, myloginform1)
<html>
<head><title>8reps Welcome.. </title></head>
<body>
<h3>Hi</h3>
<p> Lets find some results in your area.. </p>
<form name="main" method="post">
$if not form.valid: <p class="error">Try again...</p>
$:form.render()
<input type="submit" /> </form>
<p> Already registered? Login as a user..</p>
<form name="login" method="post">
$if not myloginform1.valid: <p class="error">Try again..</p>
$:myloginform1.render()
<input type="submit" />Login</form>
</form>
</body>
</html>
Спасибо !!
Спасибо, Jerzyk ... за подробный ответ. – ranjitcool