首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

flask上,实现简单博客3

2013-02-24 
flask下,实现简单博客3flask下,实现简单博客2所有视图(views.py完整代码):# -*- coding: utf-8 -*-Flas

flask下,实现简单博客3

                              flask下,实现简单博客2

所有视图(views.py完整代码):

# -*- coding: utf-8 -*-"""    Flaskr    ~~~~~~    A microblog example application written as Flask tutorial with    Flask and sqlite3.    :copyright: (c) 2010 by Armin Ronacher.    :license: BSD, see LICENSE for more details."""from __future__ import with_statementfrom sqlite3 import dbapi2 as sqlite3from flask import Flask, request, session, g, redirect, url_for, abort, \     render_template, flash, _app_ctx_stack# 创建数据库DATABASE = 'blog.db'DEBUG = TrueSECRET_KEY = 'development key'USERNAME = 'admin'PASSWORD = '123' #初始化环境# create our little application :)app = Flask(__name__)app.config.from_object(__name__)app.config.from_envvar('FLASKR_SETTINGS', silent=True)#初始化数据库def init_db():    """Creates the database tables."""    with app.app_context():        db = get_db()        with app.open_resource('schema.sql') as f:            db.cursor().executescript(f.read())        db.commit()def get_db():    """Opens a new database connection if there is none yet for the    current application context.    """    top = _app_ctx_stack.top    if not hasattr(top, 'sqlite_db'):        sqlite_db = sqlite3.connect(app.config['DATABASE'])        sqlite_db.row_factory = sqlite3.Row        top.sqlite_db = sqlite_db    return top.sqlite_db@app.teardown_appcontextdef close_db_connection(exception):    """Closes the database again at the end of the request."""    top = _app_ctx_stack.top    if hasattr(top, 'sqlite_db'):        top.sqlite_db.close()@app.route('/')def show_entries():    db = get_db()    cur = db.execute('select title, text from entries order by id desc')    entries = cur.fetchall()    return render_template('show_entries.html', entries=entries)@app.route('/add', methods=['POST'])def add_entry():    if not session.get('logged_in'):        abort(401)    db = get_db()    db.execute('insert into entries (title, text) values (?, ?)',                 [request.form['title'], request.form['text']])    db.commit()    flash('New entry was successfully posted')    return redirect(url_for('show_entries'))@app.route('/login', methods=['GET', 'POST'])def login():    error = None    if request.method == 'POST':        if request.form['username'] != app.config['USERNAME']:            error = 'Invalid username'        elif request.form['password'] != app.config['PASSWORD']:            error = 'Invalid password'        else:            session['logged_in'] = True            flash('You were logged in')            return redirect(url_for('show_entries'))    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_entries'))if __name__ == '__main__':    init_db()    app.run()

 

热点排行