[英]How do I set up a login system in pyramid using mysql as database to store email and password?
我已经看过了这个http://docs.pylonsproject.org/projects/pyramid/zh-CN/latest/quick_tutorial/authentication.html,但是它没有给出任何线索如何添加数据库来存储电子邮件和密码?
快速教程的简介描述了其目的和目标读者。 身份验证和持久性存储不在同一课程中,而是在两个不同的课程中。
您可以结合之前的步骤(不推荐)学习,也可以在SQLAlchemy + URL派送Wiki教程中试一试 ,该教程涵盖了典型的Web应用程序,包括身份验证,授权,密码哈希和SQL数据库中的持久存储。
但是请注意,它使用SQLite而不是MySQL作为其SQL数据库,因此您将不得不使用提供的数据库或将其换成您首选的SQL数据库。
以下是有关从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
和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
指定新模块后,请确保运行以下命令,以便您的项目可以识别新模块:
cd $VENV/MyPyramidProject
sudo $VENV/bin/pip install -e .
至此,您的Pyramid项目应已连接到MySQL。 现在开始学习金字塔的详细信息(如果您选择的是ORM,则了解SQLAlchemy)。 教程中的许多建议,特别是您的案例中的SQLAlchemy + URL分发Wiki教程,在与SQLite一起使用时应该可以使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.