子沐课堂——Flask留言板

1.flask安装

pip install flask

2.入口文件配置

代码如下:

#-*- coding:utf-8 -*-  

from flask import Flask,render_template,request,redirect,escape,Markup
from datetime import datetime
#引入Mysql
import MySQLdb
import sys

reload(sys)
sys.setdefaultencoding('utf8')`

#申请空间
app=Flask(__name__)

#127.0.0.1:8000
@app.route('/')
def hello_world():
    list=load_data()
    return render_template('index.html',list=list)    

@app.route('/post',methods=['POST'])
def post():
    name=request.form.get('name',u'匿名').encode('utf-8')
    comment=request.form.get('comment',u'暂无留言').encode('utf-8')
    create_time=datetime.now()
    save_data(name,comment,create_time)
    return redirect('/')

def save_data(name,comment,create_time):
    #连接数据库
    conn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='root',db='block',charset='utf8')
    cur=conn.cursor()
    cur.execute('set names utf8')
    #插入的sql语句
    sql=u"insert into word (`name`,comment,create_time) values ('{0}','{1}','{2}')".format(name.encode('utf-8'),comment.encode('utf-8'),create_time)
    #执行插入方法
    cur.execute(sql)
    cur.close()
    conn.commit()
    conn.close()

#加载列表    
def load_data():
    # 连接数据库
    conn = MySQLdb.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='block',charset='utf8')
    cur = conn.cursor()
    cur.execute('set names utf8')
    sql='select * from word'
    cur.execute(sql)
    list=cur.fetchall()
    cur.close()
    conn.commit()
    conn.close()
    return list

#使datetime对象更容易分辨的模板的过滤器
@app.template_filter('datetime_fmt')
def datetime_fmt_filter(dt):
    return dt.strftime('%Y年%m月%d日 %H:%M:%S')
#将换行符置换为br标签的模板过滤器
@app.template_filter('nl2br')
def nl2br_filter(s):
    return escape(unicode(s)).replace('\\n',Markup('
')) #执行flask项目 if __name__ == '__main__': app.run()

3.搭建页面

使用Bootstrap,搭建HTML页面,新建一个temolates目录,然后再找个目录下新建一个index.html。在模板文件中,我们使用Jinja2模板引擎,判断后台传递来的数据是否为空,非空则显示列表,空则显示暂无数据,同时使用Bootstrap的模态框,制作发布留言。
代码如下:




    
    
    留言板
    
    

    
    

    
    


    

留言列表

{% if list %} {% for item in list %}
{{item[1]}}

发布时间:{{ item[3]|datetime_fmt}}

{{item[2]|nl2br}}

{% endfor %} {% else %}

暂无数据

{% endif %}

随后我们新建static文件夹,里面方式我们从Bootstrap官网下载的文件资源包

4.运行

cmd输入命令,python index.py
如此,就可以通过浏览器访问127.0.0.1:5000,显示的项目

5.自定义端口及开启调试模式

修改index.py,设置app.run()app.run('127.0.0.1',8080,debug=True),如此每次代码改变,不需要手动重新启动项目。flask会自动重启项目。
今日头条——原文链接

你可能感兴趣的:(子沐课堂——Flask留言板)