pythonflask留言板_python+flask+sqlite3完成的小型博客留言板

这是一个使用Python的Flask框架和SQLite3数据库创建的简单博客留言板应用。用户可以登录、发布和查看留言,系统支持错误处理和会话管理。
摘要由CSDN通过智能技术生成

# all the imports

from __future__ import with_statement

from contextlib import closing

import sqlite3

import time

from flask import Flask, request, session, g, redirect, url_for, \

abort, render_template, flash

# configuration

DATABASE = 'E:/debug/python/flaskr/flaskr.db'

DEBUG = True

SECRET_KEY = 'development key'

USERNAME = '1'

PASSWORD = '1'

app = Flask(__name__)

app.config.from_object(__name__)

app.config.from_envvar('FLASKR_SETTINGS', silent=True)

def connect_db():

return sqlite3.connect(app.config['DATABASE'])

def init_db():

with closing(connect_db()) as db:

with app.open_resource('schema.sql') as f:

db.cursor().executescript(f.read())

db.commit()

@app.before_request

def before_request():

g.db = connect_db()

@app.after_request

def after_request(response):

g.db.close()

return response

@app.route('/')

def show_entries():

cur = g.db.execute('select title, text, time from entries order by id desc')

entries = [dict(title=row[0], text=row[1], time=row[2]) for row in 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)

g.db.execute('insert into entries (title, text, time) values (?, ?, ?)',

[request.form['title'], request.form['text'],

time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))])

g.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__':

app.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值