如何使用mysql作为数据库在金字塔中设置登录系统来存储电子邮件和密码?

时间:2016-09-09 17:55:24

标签: python authentication pyramid

我已经完成了这个http://docs.pylonsproject.org/projects/pyramid/en/latest/quick_tutorial/authentication.html,但它没有提供任何线索如何添加数据库来存储电子邮件和密码?

2 个答案:

答案 0 :(得分:3)

快速教程简介介绍了其目的和目标受众。身份验证和持久存储不在同一课程中,但在两个不同的课程中。

您可以将学习与之前的步骤结合起来(不推荐),也可以尝试使用SQLAlchemy + URL dispatch wiki tutorial来覆盖典型的Web应用程序,其中包括SQL数据库中的身份验证,授权,密码哈希和持久存储

但请注意,它使用SQLite而不是MySQL作为其SQL数据库,因此您必须使用提供的数据库或将其替换为首选SQL数据库。

答案 1 :(得分:1)

以下是有关从SQLite切换到MySQL的一些建议。在development.ini(和/或production.ini)文件中,从SQLite更改为MySQL:

# sqlalchemy.url = sqlite:///%(here)s/MyProject.sqlite  [comment out or remove this line]
sqlalchemy.url = mysql://MySQLUsername:MySQLPassword@localhost/MySQLdbName

当然,您需要一个MySQL数据库(上例中的MySQLdbName),并且可能需要编辑其元数据的知识和权限,例如,添加名为user_email和{{1的字段如果需要,可以在passwordhash表中创建一个users表。

users文件中,您需要导入setup.py模块。一个例子是:

mysql-python

requires = [ 'bcrypt', 'pyramid', 'pyramid_jinja2', 'pyramid_debugtoolbar', 'pyramid_tm', 'SQLAlchemy', 'transaction', 'zope.sqlalchemy', 'waitress', 'mysql-python', ] 中指定新模块后,请务必运行以下命令,以便项目识别新模块:

setup.py

到目前为止,您的Pyramid项目应该与MySQL连接起来。现在要了解Pyramid(以及SQLAlchemy,如果这是您选择的ORM)的详细信息。本教程中的大部分建议,部分是您案例中的SQLAlchemy + URL dispatch wiki tutorial,应该与SQLite一起使用。