選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

76 行
2.0KB

  1. import web
  2. from web import form
  3. import mysql.connector
  4. # Define application routes
  5. urls = (
  6. '/', 'index',
  7. '/logout', 'logout',
  8. )
  9. # Access datavase using mysql connector package
  10. db = mysql.connector.connect(
  11. user='root',
  12. password='root',
  13. host='10.5.0.5',
  14. database='db'
  15. )
  16. # Initialize application using the web py framework
  17. app = web.application(urls, globals())
  18. # Get html templates
  19. render = web.template.render('templates/')
  20. # Workaround to use sessions with reloader (debugger) http://webpy.org/cookbook/session_with_reloader
  21. if web.config.get('_session') is None:
  22. session = web.session.Session(app, web.session.DiskStore("sessions"), initializer={"username": None})
  23. web.config._session = session
  24. else:
  25. session = web.config._session
  26. # Add session to global variables
  27. render._add_global(session, 'session')
  28. class index():
  29. login_form = form.Form(
  30. form.Textbox("username", description="Username"),
  31. form.Password("password", description="Password"),
  32. form.Button("submit", type="submit", description="Login"),
  33. )
  34. def GET(self):
  35. cursor = db.cursor()
  36. query = ("SELECT userid, username from users")
  37. cursor.execute(query)
  38. friends = cursor.fetchall()
  39. cursor.close()
  40. return render.index(self.login_form, friends)
  41. def POST(self):
  42. cursor = db.cursor()
  43. query = ("SELECT userid, username, password from users")
  44. cursor.execute(query)
  45. friends = cursor.fetchall()
  46. cursor.close()
  47. data = web.input()
  48. print("name:", data.username)
  49. for user in friends:
  50. if data.username == user[1] and data.password == user[2]:
  51. session.username = data.username
  52. return render.index(self.login_form, friends[:2])
  53. class logout:
  54. def GET(self):
  55. session.kill()
  56. return "Logged out"
  57. if __name__ == "__main__":
  58. app.run()
  59. application = app.wsgifunc()