python完成留言板功能
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<title>留言板</title>
<link rel="stylesheet" href="main.css" type="text/css">
</head>
<body>
<h1>留言板</h1>
<form action="/post" method="post">
<p>请留言</p>
<table>
<tr>
<th>名字</th>
<td>
<input type="text" size="20" name="name">
</td>
</td>
</tr>
<tr>
<th>留言</th>
<td>
<textarea rows="5" cols="40" name="comment"></textarea>
</td>
</tr>
</table>
<p><button type="submit">提交</button></p>
</form>
<div class="entries-area">
<h2>留言记录</h2>
<h3>游客 的留言 (2017年11月2日21:45:05)</h3>
<p>
留言内容<br>
留言内容 </p> </div> </body>
</html>
body{
margin:;
padding:;
color: #000E41;
background-color: #004080;
}
h1{
padding: 0 1em;
color: #FFFFFF;
}
form{
padding: 0.5em 2em;
background-color: #78B8F8;
}
.main {
padding:;
}
.entries-area{
padding: 0.5em 2em;
background-color: #FFFFFF;
}
.entries-area p{
padding: 0.5em 1em;
background-color: #DBDBFF;
}
留言板
留言板
请留言
名字 | |
---|---|
留言 |
提交
留言记录
游客 的留言 (2017年11月2日21:45:05)
留言内容
# -*- coding: utf-8 -*-
from __future__ import with_statement
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, \
abort, render_template, flash
from contextlib import closing # configuration
DATABASE = 'D:\coding\py2.7\liuyan\guestbook.dat' # 数据库存储路径
DEBUG = True
SECRET_KEY = 'development key'
USERNAME = 'admin'
PASSWORD = 'default' # create our little application :)
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.teardown_request
def teardown_request(exception):
g.db.close() @app.route('/')
def show_entries(): # 输出函数,会将条目作为字典传递给 show_entries.html 模板,并返回之后的渲染结果
cur = g.db.execute('select name,email,text from entries order by id desc limit 10')
entries = [dict(name=row[0], email=row[1], text=row[2]) for row in cur.fetchall()]
return render_template('show_entries.html', entries=entries) @app.route('/add', methods=['POST'])
def add_entry(): # 用户添加新的留言信息函数,并只响应 POST 请求,表单显示在 show_entries
if not session.get('logged_in'):
abort(401)
if len(request.form['text']) > 50 and len(request.form['text']) < 500: # 实现控制字数在50到500范围内
g.db.execute('insert into entries (name,email,text) values (?,?,?)',
[request.form['name'], request.form['email'], request.form['text']])
g.db.commit()
flash('New entry was successfully posted')
else:
flash('The input range must be between 50 and 500 characters ') # 如果留言信息不在范围内作出提示
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 = 'name error'
elif request.form['password'] != app.config['PASSWORD']:
error = 'password error'
else:
session['logged_in'] = True
flash('log 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('log out')
return redirect(url_for('show_entries')) if __name__ == '__main__':
init_db()
app.run(debug=True)
留言内容
python完成留言板功能的更多相关文章
- jsp中运用application实现共享留言板功能
jsp中application的知识点总结: 1.一个Web应用程序启动后,将会自动创建一个application对象,在整个应用程序的运行过程中只有这一个application对象,即所有访问该网站 ...
- Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql
在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...
- 利用反馈字段给帝国cms添加留言板功能(图文教程)
帝国cms的插件中提供信息反馈字段,很多人却不会用.这里谢寒教大家如何来给自己的帝国cms网站添加留言板功能 1.找到添加地址 2.添加字段 3.你可以在字段中添加多种字段类型(有文本域,单行文本框, ...
- php实现留言板功能
这个小小的留言板功能适合班级内或者公司内部之间的讨论,对话和留言,非常的方便,更重要的是无需网络,对于公司管理层来说是非常乐于常见的, 下面是这个留言板的写法: 1 首先是登录页面: <form ...
- 使用PHP连接数据库实现留言板功能
PHP实现留言板功能: 1 首先是登录页面: <!DOCTYPE html><html> <head> <meta charset=&qu ...
- JS原生编写实现留言板功能
实现这个留言板功能比较简单,所以先上效果图: 实现用户留言内容,留言具体时间. <script> window.onload = function(){ var oMessageBox = ...
- 原生JS实现简单留言板功能
原生JS实现简单留言板功能,实现技术:css flex,原生JS. 因为主要是为了练手js,所以其中布局上的一些细节并未做处理. <!DOCTYPE html> <html lang ...
- 用php(session)实现留言板功能----2017-05-09
要实现留言功能,发送者和接受者必不可少,其次就是留言时间留言内容. 要实现的功能: 1.登录者只能查看自己和所有人的信息,并能够给好友留言 2.留言板页面,好友采取下拉列表,当留言信息为空时,显示提示 ...
- Django web框架开发基础-django实现留言板功能
1.创建项目 cmd django-admin startpoject cloudms 2.创建APP cmd django-admin startapp msgapp 3.修改settings,T ...
随机推荐
- C# for语句
一.C# for语句 for语句是C#语言中使用频率最高的循环语句. 1. for语句 语法格式如下: for(initializer; condition; iterator){ embedd ...
- 微信端H5页面问题总结
1.div元素不确定高度的情况下背景图片显示问题,解决后可以自适应不同分辨率的屏幕大小,div元素的background-size设置100%后,其自身的高度和宽度不能再设置. .register-t ...
- Navicat-12.0.26的激活
1.卸载掉早期版本,卸载干净,然后安装最新版Navicat(使用群文件中Iobit uninstaller8卸载) 2.安装完成后将破解补丁复制到安装目录下,运行破解补丁. 4.先patch,然后选择 ...
- windows和linux上mysql的安装
mysql基于多平台,多版本的安装 mysql.tar.gz 链接:https://pan.baidu.com/s/1lG9BNL1mG4qbjM8xLHtrjQ 密码:s4tk MySQL 是一个 ...
- 传输控制协议(TCP)
传输控制协议(TCP)[来自Unix网络编程(卷一)第2章] 1.TCP是一个面向连接.可靠性的传输协议: 2.TCP含有用于动态估算客户与服务器之间往返时间(RTT)的算法,以便它知道等待一个确认需 ...
- 百度MIP校验错误整理与解决方法
MIP校验工具地址: https://www.mipengine.org/validator/validate 1.强制性标签缺失或错误 错误提示:line 1,col 1: 强制性标签'<sc ...
- 阿里云Linux服务器,挂载硬盘并将系统盘数据迁移到数据盘
因为之前用宝塔上线,宝塔只挂载了系统盘50G,打开阿里云云盘列表发现系统盘无法直接升级,故另买一块数据盘挂载到Linux服务器下,下面根据网上教程再结合我实际情况讲解一下实际操作,其实非常easy l ...
- java中的构造方法(2013-05-05-bd 写的日志迁移
特点: 1.方法名和类名相同 2.没有返回值 3.在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化 一个类中可以定义多个不同构造方法: 如果程序员没有定义构造方法,系统能够会 ...
- 通信服务器哈希Socket查找(Delphi)
在Socket通信服务器的开发中,我们经常会需要Socket与某个结构体指针进行绑定.当连接量很大时,意味着需要个高效的查找方法 Delphi中提供了哈希算法类,以此类为基础,修改出Socket专用M ...
- arm-none-linux-gnueabi-gcc No such file or directory这个错误的解决方法
这个gcc可执行文件是32位的版本,而在64位系统上需要安装32位兼容包才可以运行正常 .用file命令查看这个文件得到: 解决办法: 安装ia32-libs sudo apt-get install ...