SQLAlchemy
+50 −2 · 2 files changed
-
flask-blog.py+18 −2 -
templates/sqla.html+32 −0
@@ -42,9 +42,7 @@ class UploadForm(Form): class User(db.Model): - # custom table name __tablename__ = 'users' - id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(16), index=True, unique=True) @@ -174,10 +172,28 @@ def index6(): return render_template('other.html', count=session['count'], when=g.when) +@app.route('/sql', methods=['GET', 'POST']) +def sqla(): + name = None + new = False + + form = NameForm() + + if form.validate_on_submit(): + name = form.name.data + form.name.data = '' + if User.query.filter_by(name=name).first() is None: + db.session.add(User(name=name)) + db.session.commit() + new = True + return render_template('sqla.html', form=form, name=name, new=new) + + @app.errorhandler(404) def not_found(e): return render_template('404.html') if __name__ == '__main__': + db.create_all() app.run(debug=True) @@ -0,0 +1,32 @@ +{% extends "bootstrap/base.html" %} +{% import "bootstrap/wtf.html" as wtf %} + +{% block title %}Relational Database Example{% endblock %} + +{% block navbar %} + <nav class="navbar navbar-inverse" role="navigation"> + <div class="container"> + <a class="navbar-brand" href="{{ url_for('sqla') }}">Hello</a> + </div> + </nav> + +{% endblock %} + +{% block content %} + <div class="container"> + <div class="row"> + <div class="col-md-3"> + {{ wtf.quick_form(form) }} + </div> + </div> + {% if name %} + <h1>Hello, {{ name }}!</h1> + {% if new %} + <p>Pleased to meet you!</p> + {% else %} + <p>Happy to see you again!</p> + {% endif %} + {% endif %} + </div> + +{% endblock %} \ No newline at end of file