第 0023 题: 使用 Python 的 Web 框架,做一个 Web 版本 留言簿 应用。
2019-04-25 11:18
621 查看
import sqlite3 from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash from contextlib import closing import time DATABASE = 'guestbook.db' DEBUG = True SECRET_KEY = 'development key' app = Flask(__name__) app.config.from_object(__name__) def connect_db(): return sqlite3.connect(app.config['DATABASE']) def init_db(): with closing(connect_db()) as db: with app.open_resource('schema.sql', mode='r') as f: db.cursor().executescript(f.read()) db.commit() @app.before_request def before_request(): g.db = connect_db() @app.teardown_request def teardown_request(exception): db = getattr(g, 'db', None) if db is not None: db.close() g.db.close() @app.route('/') def show_entires(): cur = g.db.execute('select name,text,time from entries order by id desc') entries = [dict(name=row[0], text=row[1], time=row[2]) for row in cur.fetchall()] for i in entries: print i return render_template('show_entries.html', entries=entries) @app.route('/add', methods=['POST']) def add_entry(): if not session.get('logged_in'): abort(401) current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) g.db.execute('insert into entries (name, text, time) values (?, ?, ?)', [request.form['name'], request.form['text'], current_time]) g.db.commit() flash('New entry was successfully posted') return redirect(url_for('show_entires')) @app.route('/login', methods=['GET', 'POST']) def login(): error = None if request.method == 'POST': if request.form['username'] is None: error = "Invalid username" else: session['logged_in'] = True session['name'] = request.form['username'] flash('You were logged in') return redirect(url_for('show_entires')) return render_template('login.html', error=error) @app.route('/logout') def logout(): session.pop('logged_in', None) flash('You were logged out') return redirect(url_for('show_entires')) if __name__ == "__main__": app.run()
相关文章推荐
- 使用node.js的开发框架express创建一个web应用
- 《Java高手真经_应用框架卷_Java_Web核心框架》所用软件、使用版本、下载地址列表:
- 详解如何使用node.js的开发框架express创建一个web应用
- Python web框架Django学习(1)——在win7 64bit下配置开发环境Django:一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以最小的代价构建和
- Python Show-Me-the-Code 第 0023 题 Web留言簿应用
- 使用Python的Tornado框架实现一个Web端图书展示页面
- 使用node.js的开发框架express创建一个web应用
- Flask 详细介绍 Flask 是一个微型的 Python 开发的 Web 框架,基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD授权。 Flask也被称为“mi
- 使用Python的Tornado框架实现一个Web端图书展示页面
- 推荐一个小型的python web框架
- Python Web框架Flask中使用百度云存储BCS实例
- Beetle框架使用指南之--Web应用零配置编程
- Create a Java Web Application using Embedded Tomcat (如何使用Embedded 创建一个基于Tomcat的Web 应用))
- 使用分层的Selenium框架进行复杂 Web 应用的自动测试
- luci框架-LUA的一个web框架使用
- Python Web 框架,第 1 部分: 使用 Django 和 Python 开发 Web 站点
- 使用分层的 Selenium 框架进行复杂 Web 应用的自动测试
- Python Web框架Pylons中使用MongoDB的例子
- hijk——使用JDK8中Javascript引擎Nashorn开发web和网络的应用框架
- Python Web框架Flask中使用七牛云存储实例