繁体   English   中英

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

[英]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_emailpasswordhash字段添加到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM