Flask怎么用

极客

Flask怎么用?手把手教你从零开始搭建第一个Web应用!

说实话,我刚接触Python Web开发那会儿,真的是被Django吓到了——一大堆概念、目录结构、配置文件……头都大了好吗!后来朋友跟我说:“你先试试Flask吧,轻量级,上手快。”结果我一试,哇,真香!今天就来聊聊Flask怎么用,给还在门口徘徊的朋友们一点参考。

Flask怎么用

Flask到底是个啥?

Flask就是一个用Python写的微型Web框架,它不像Django那样“什么都给你准备好”,而是只给你最核心的东西,剩下的你想装啥装啥,就像吃火锅,Django是套餐,Flask是单点——自由度高,但也意味着你得自己动手,不过别怕,真的没你想的那么难!

第一步:安装Flask

这个超简单,打开终端,一行命令搞定:

pip install flask

对,就这么easy~ 安装完之后,你可以pip show flask确认一下版本,心里有个数。

第二步:写一个最小的Flask应用

来来来,创建一个叫app.py的文件,然后写下面这几行代码:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
    return 'Hello, Flask!'
if __name__ == '__main__':
    app.run(debug=True)

然后运行python app.py,打开浏览器访问http://127.0.0.1:5000,你就能看到“Hello, Flask!”了!是不是超有成就感?我第一次跑通的时候,兴奋得跟什么似的哈哈哈。

第三步:理解路由和视图函数

Flask怎么用的核心,其实就是路由这个概念,你看上面那个@app.route('/'),就是在告诉Flask:“当有人访问根路径的时候,执行下面的hello()函数。”那个函数就叫视图函数

你也可以搞多个路由,

@app.route('/about')
def about():
    return '这是关于页面'
@app.route('/user/<name>')
def user(name):
    return f'你好,{name}!'

看到没?<name>是动态参数,访问/user/小明就会返回“你好,小明!”——是不是很灵活?

第四步:模板渲染,让页面好看点

光返回字符串肯定不够用啊,咱们得用HTML,Flask自带Jinja2模板引擎,用起来贼方便,先在项目目录下建一个templates文件夹,然后写个index.html

<!DOCTYPE html>
<html>
<head>{{ title }}</title>
</head>
<body>
    <h1>欢迎来到{{ title }}</h1>
    <p>今天是{{ date }}</p>
</body>
</html>

然后在app.py里这么写:

from flask import render_template
@app.route('/index')
def index():
    return render_template('index.html', title='我的网站', date='2024年')

刷新页面,一个像模像样的网页就出来了!是不是有点小激动?

第五步:处理表单和请求

Web开发哪能少了表单呢?Flask处理POST请求也很简单:

from flask import request
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        return f'欢迎回来,{username}!'
    return render_template('login.html')

记住啊,methods参数一定要写,不然默认只接受GET请求,POST就会报405错误,这个坑我踩过,别问我怎么知道的😭

最后唠两句

其实Flask怎么用这个问题,说到底就是:装好→写路由→写视图→渲染模板→处理请求,一步步来,别急,Flask的魅力就在于它的简洁和灵活,你可以从小项目开始,慢慢加扩展,比如数据库用Flask-SQLAlchemy,表单用Flask-WTF,用户登录用Flask-Login……

呢,别怕,动手写就完事了!遇到报错就查文档、搜Stack Overflow,社区资源超级丰富,相信我,用不了几天,你就能用Flask搭出一个像样的小网站了,加油哦~

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]