由于对于数据库完全不懂,我选择了用比较简单的Flask-SQLALchemy
官网介绍
Flask-SQLALchemy 是一个给你的应用添加 SQLALchemy 支持的 Flask 扩展。 它需要 SQLAlchemy 0.6 或更高的版本。它致力于简化在 Flask 中 SQLAlchemy 的 使用,提供了有用的默认值和额外的助手来更简单地完成日常任务
数据库模板创建
按照一个最小应用页面方法,创建了数据库main.db
。自行增加了一个字段password用于存储用户密码。
代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////root/app/door/main.db' db = SQLAlchemy(app)
class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(120), unique=True) password = db.Column(db.String(120), unique=True)
def __init__(self, username, email, password): self.username = username self.email = email self.password = password
def __repr__(self): return '<User %r>' % self.username
|
创建数据库及添加用户
官网教程很详细,我就不说了。链接:一个最小应用
测试程序
自己写了一小段测试test.py
,用来取出用户密码并显示。希望大家也养成新函数通过测试再往主程序添加的习惯。之前我就是因为这个坏习惯,老找不到问题所在,最终直接弃用数据库了。
1 2 3 4 5 6 7 8 9 10
| from sqlinit import db, User
user_name=raw_input('please input user name')
def get_user_pass(user_name): user = User.query.filter_by(username=user_name).first() user_password=user.password return(user_password)
print get_user_pass(user_name)
|
能够正确返回用户密码,测试通过。