Flask数据库扩展Flask-SQLALchemy

由于对于数据库完全不懂,我选择了用比较简单的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)

能够正确返回用户密码,测试通过。