我已经完成了这个http://docs.pylonsproject.org/projects/pyramid/en/latest/quick_tutorial/authentication.html,但它没有提供任何线索如何添加数据库来存储电子邮件和密码?
答案 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一起使用。