flask-sqlalchemy实例

来源:互联网 发布:怎么登录淘宝网电脑版 编辑:程序博客网 时间:2024/06/04 19:04
from flask import Flask,render_template_string,request,redirectfrom flask.ext.sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.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)    def __init__(self, username, email):        self.username = username        self.email = email    def __repr__(self):        return '<User %r>' % self.usernamedb.drop_all()db.create_all()admin = User('admin', 'admin@example.com')guest = User('guest', 'guest@example.com')db.session.add(admin)db.session.add(guest)db.session.commit()#users = User.query.all()#print(users)#admin = User.query.filter_by(username='admin').first()#print(admin)@app.route('/user/show/<username>')def show_user(username):    user = User.query.filter_by(username=username).first_or_404()    return render_template_string('''姓名:{{user.username}}<br>         电子邮件:{{user.email}}         '''   , user=user)    #return user@app.route('/user/list')def list_user():    users=User.query.all()    return render_template_string('''        <table border="1"><tr><td>用户名</td><td>电子邮件</td></tr>        {% for user in users %}        <tr><td>{{user.username}}</td><td>{{user.email}}</td></tr>         {% endfor%}        </table        ''' ,users=users)@app.route('/user/add')def add_user():    # /user/add?username=yangjing&email=772890@qq.com    if request.args.get('username'):        username=request.args.get('username')        email=request.args.get('email')        db.session.add(User(username,email))        db.session.commit()        return redirect('/user/list')    else:        return '''<form action="/user/add" method="get">             用户名:<input type="text" name="username"/><br>             电子邮件:<input type="text" name="email"/><br>             <input type="submit" value="提交"/><br>            </form>            '''@app.route('/user/delete/<username>')def delete_user(username):    User.query.filter(User.username==username).\    delete()    db.session.commit()    return redirect('/user/list')if __name__=='__main__':    app.run(debug=True)
0 0