Flask+mysql+centos7搭建微网站教程

Posted 老朱串串香

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask+mysql+centos7搭建微网站教程相关的知识,希望对你有一定的参考价值。

       Flask因为轻且容易上手,我就选择它啦。首先用PyCharm 创建一个完整的工程结构,跟django不一样不能用命令行。然后它会自动生成静态资源目录文件,static和templates,不用像django一样手动配置,很方便。mysql事先装好。

        开写代码:我都是写在主模块里的:第一步创建实例应用:

app = Flask(__name__)

第二步配置mysql,按这个连接格式和自动提交sql

app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:pwd@localhost:3306/Word"
app.config['SQLALCHEMY_COMMIT_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

第三步用flask自带的SQLAlchemy创建数据库连接对象

db = SQLAlchemy(app)

第四步创建数据表模型

class Word(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True, nullable=False)
    age = db.Column(db.String(80), unique=False, nullable=False)
    word = db.Column(db.String(320), unique=False, nullable=False)
    def __repr__(self):
        return '<User %r>' % self.id

这里我用到的字段就是昵称、年龄、留言内容,留言时间后面再加。然后生成表

db.create_all()

然后就开始我们的视图函数了

@app.route('/rou')
def hello_world1():
    return render_template('index.html', title='hello')
@app.route('/su')
def hello_world2():
    return render_template('index2.html', title='hello2')

对应前台左边两个菜单的请求响应,路由和渲染模板就不用做多解释了。

然后就是我们右边菜单的留言系统了,要用到数据库,步骤也很简单。

@app.route('/liu', methods=['GET''POST'])
def home():
    return render_template('form.html')
@app.route('/update', methods=['POST'])
def update():
    name = request.form.get('name''name为空')
    age = request.form.get('age''age为空')
    word = request.form.get('word''word为空')
    if (name and age and word):
        print('second' + name, age, word)
        admin = Word(name=name, age=age, word=word)
        db.session.add(admin)
        db.session.commit()
        return redirect(url_for('view'))
    return "不能为空"

这里第一个函数是处理首页,渲染出一个form表单页面供用户填写信息。然后用户提交后,第二个函数处理信息存入mysql,如果都正确的话跳转至留言浏览页,注意url_for里的参数必须是函数名不能带参数,我就在这里死磕了半天,我这里跳转至浏览页的函数处理时页码默认为第1页

@app.route('/view', methods=['GET'])
def view():
    p = int(request.args.get('p','1'))
    ......
    return render_template('view.html', p=p, mess=mess, all_p=all_p, lis=lis)

这里省略部分为分页逻辑,有点麻烦以后再叙。这就渲染出了留言页。

if __name__ == '__main__':
    app.run(host='0.0.0.0',port=80)

以上是关于Flask+mysql+centos7搭建微网站教程的主要内容,如果未能解决你的问题,请参考以下文章

Python Flask 构建微电影视频网站

CentOS7.5搭建Flask环境python3.6+mysql+redis+virtualenv

一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏

基于windows环境的Flask网站搭建(mysql + conda + redis)

(转)手把手教你自制微信公众号流量监控系统

手把手教大家CentOS 7 搭建mysql 5.5