私はpython web.pyフレームワークを使用して、小さなWebアプリケーションを作成しています
ログイン画面(認証)
記録一覧画面(ログイン成功後)
現在、ログイン画面認証を作成しようとしています
index.py
以下のコードでファイルを作成しました
index.py
import os
import sys
import web
from web import form
from web.contrib.auth import DBAuth
render = web.template.render('templates/')
urls = (
'/', 'Login',
)
app = web.application(urls, globals())
db = web.database(dbn='mysql', db='Python_Web', user='root', pw='redhat')
class Login:
login_form = form.Form(
form.Textbox('username', form.notnull),
form.Password('password', form.notnull),
form.Button('Login'),
)
def GET(self):
form = self.login_form()
return render.login(form)
def POST(self):
# if not self.login_form.validates():
# return render.login(self.login_form)
post = self.login_form()
username = post['username'].value
print username,">>>>>>>>>>>>>>>>>>>>>>username"
password = post['password'].value
ident = db.select('user', where='user_login=$username', vars=locals())
if __name__ == "__main__":
web.internalerror = web.debugerror
app.run()
私のlogin.htmlコード
$def with (form)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Log in</title>
</head>
<body>
<div id="container">
<h1>Log in Details</h1>
<form action="" method="post" accept-charset="utf-8">
<p><label for="username">Username:
<input type="text" name="username" id="username" maxlength="254" tabindex="1" />
</label></p>
<p><label for="password">Password:
<input type="password" name="password" id="password" maxlength="254" tabindex="2" />
</label></p>
<p><label for="Login"></label><button id="Login" name="Login">Login</button></p>
</form>
</div>
</body>
ブラウザでURLwww.localhost:9080
を指定して上記のファイルを実行すると、フィールドボタンのある画面が表示されusername, password and login
ますが、ユーザー名とパスワードを入力してlogin
ボタンをクリックし、ユーザー名を印刷しようとすると、ブラウザからデータを取得できず、表示される結果は次のとおりです
None >>>>>>>>>>>>>>>>>>>>>>username
0.0 (1): SELECT * FROM user WHERE user_login=NULL
ブラウザから入力した詳細を取得できない理由を誰か教えてもらえますか?、上記のコードに何か欠けているのでしょうか?最終的に私の意図はすべて
データベースにチェックインしてlogin
ページとユーザーの詳細を作成するvalidate
redirect
ユーザーが終了すると次のページへ
ブラウザから詳細を取得し、データベースをチェックインし、ユーザーが存在する場合は別の HTML ページにリダイレクトするためのコードを書くのを手伝ってください。私は本当に立ち往生していて、このプロセスを完了するために頭を悩ませています