Je suis passé par cette http://docs.pylonsproject.org/projects/pyramid/en/latest/quick_tutorial/authentication.html mais il ne donne aucune idée comment ajouter la base de données à cela pour stocker e-mail et mot de passe?Comment puis-je configurer un système de connexion dans la pyramide en utilisant mysql comme base de données pour stocker le courrier électronique et le mot de passe?
Répondre
Voici quelques suggestions concernant le passage de SQLite à MySQL. Dans votre development.ini
(et/ou production.ini
) fichier, changement de SQLite à MySQL:
# sqlalchemy.url = sqlite:///%(here)s/MyProject.sqlite [comment out or remove this line]
sqlalchemy.url = mysql://MySQLUsername:[email protected]/MySQLdbName
Bien sûr, vous aurez besoin d'une base de données MySQL (MySQLdbName
dans l'exemple ci-dessus) et sans doute les connaissances et les privilèges de modifier ses métadonnées par exemple, pour ajouter des champs appelés user_email
et passwordhash
au tableau users
ou créer une table users
si nécessaire. Dans votre fichier setup.py
, vous aurez besoin du module mysql-python
à importer. Un exemple serait:
requires = [
'bcrypt',
'pyramid',
'pyramid_jinja2',
'pyramid_debugtoolbar',
'pyramid_tm',
'SQLAlchemy',
'transaction',
'zope.sqlalchemy',
'waitress',
'mysql-python',
]
Après avoir spécifié le nouveau module (s) dans setup.py
, assurez-vous d'exécuter les commandes suivantes pour que votre projet reconnaît le nouveau module (s):
cd $VENV/MyPyramidProject
sudo $VENV/bin/pip install -e .
par ce point , votre projet Pyramid devrait être connecté à MySQL. Maintenant, il s'agit d'apprendre les détails de Pyramid (et SQLAlchemy si c'est votre ORM sélectionné). La plupart des suggestions dans les didacticiels, en particulier le SQLAlchemy + URL dispatch wiki tutorial dans votre cas, devraient fonctionner comme ils fonctionnent avec SQLite.
L'introduction au Quick Tutorial décrit son but et son public cible. L'authentification et le stockage persistant ne sont pas couverts dans la même leçon, mais dans deux leçons différentes. Soit vous pouvez combiner l'apprentissage des étapes précédentes (non recommandé), soit vous pouvez utiliser le SQLAlchemy + URL dispatch wiki tutorial qui couvre une application Web typique avec authentification, autorisation, hachage de mots de passe et stockage persistant dans une base de données SQL. Notez toutefois qu'il utilise SQLite, et non MySQL, comme base de données SQL. Vous devrez donc utiliser celui fourni ou l'échanger pour votre base de données SQL préférée.