Python 初学者,基础看完,如何学习 Flask 框架?

看了官方文档和中文版的,按章节敲代码,偶尔有些地方执行不下去。看的头大,很大的那种


Python 初学者,基础看完,如何学习 Flask 框架?
39 回复

看最新的英文文档


直接上手做项目是最好的学习方式。别再看理论了,跟着这个最小化的“待办事项列表”应用走一遍,把每个部分都自己敲一遍。

1. 环境与项目结构 先建个文件夹,比如 my_flask_app。在里面创建两个文件:

  • app.py (主程序)
  • templates/index.html (模板文件)

2. 核心代码 (app.py)

from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)
# 用一个简单的列表在内存里存数据,实际项目会用数据库
tasks = []

@app.route('/')
def index():
    """首页,展示所有任务"""
    return render_template('index.html', tasks=tasks)

@app.route('/add', methods=['POST'])
def add_task():
    """添加新任务"""
    task_content = request.form.get('task')
    if task_content:  # 简单判空
        tasks.append({'id': len(tasks) + 1, 'content': task_content, 'done': False})
    return redirect(url_for('index'))

@app.route('/toggle/<int:task_id>')
def toggle_task(task_id):
    """切换任务完成状态"""
    for task in tasks:
        if task['id'] == task_id:
            task['done'] = not task['done']
            break
    return redirect(url_for('index'))

@app.route('/delete/<int:task_id>')
def delete_task(task_id):
    """删除任务"""
    global tasks
    tasks = [task for task in tasks if task['id'] != task_id]
    # 重新整理ID,保持连续
    for idx, task in enumerate(tasks, start=1):
        task['id'] = idx
    return redirect(url_for('index'))

if __name__ == '__main__':
    app.run(debug=True)

3. 前端模板 (templates/index.html)

<!DOCTYPE html>
<html>
<head>
    <title>简易待办事项</title>
    <style>
        .done { text-decoration: line-through; color: gray; }
        li { margin: 5px 0; }
    </style>
</head>
<body>
    <h1>我的待办事项</h1>
    
    <form action="{{ url_for('add_task') }}" method="POST">
        <input type="text" name="task" placeholder="输入新任务..." required>
        <button type="submit">添加</button>
    </form>
    
    <ul>
        {% for task in tasks %}
        <li>
            <span class="{{ 'done' if task.done else '' }}">
                {{ task.content }}
            </span>
            <a href="{{ url_for('toggle_task', task_id=task.id) }}">
                {{ '标记未完成' if task.done else '标记完成' }}
            </a>
            <a href="{{ url_for('delete_task', task_id=task.id) }}">删除</a>
        </li>
        {% endfor %}
    </ul>
</body>
</html>

4. 运行与理解

  1. 在终端进入项目目录,运行 python app.py
  2. 浏览器打开 http://127.0.0.1:5000
  3. 试着添加、完成、删除任务,感受整个流程。

这个例子覆盖了Flask最核心的五个概念:

  • 路由 (@app.route):把URL映射到Python函数。
  • 视图函数:处理请求,返回响应(比如 render_templateredirect)。
  • 模板渲染:用Jinja2语法({% ... %}{{ ... }})把Python数据动态生成HTML。
  • 请求对象 (request):获取用户提交的表单数据。
  • URL生成 (url_for):根据函数名生成对应的URL,避免硬编码。

接下来怎么学? 把这个例子玩熟后,去改它:加个“编辑任务”功能,或者把数据存到SQLite数据库里(用 sqlite3 模块)。遇到问题直接查Flask官方文档,那是最准确的信息源。

总结:别想太多,先动手把这个例子跑起来。

Flask Web 开发:基于 Python 的 Web 应用开发实战.pdf

Flask 中文文档很完善,也很新。《 Flask Web 开发》这本书也不错

看不下去可能是你语言基础不扎实,看不懂自然就觉得头大,慢慢来就好。

写一个博客就好了

是本好书,我就是拿这本书入门的

看的就是最新的

我看下

基本上看完了就能对 Python web 开发的工程化流程有个大概的体会了。

文档还得多看几遍

我一直提倡目标学习法,所以你要有一个目标,比如写个博客什么的。

Flask 是一个 Web 的 Framework,所以要学会 Flask 你可能要先学以下几个东西:

1. 简单的 TCP,和足够用的 HTTP。这个放在第一位是比较重要的这也是 Flask 的核心内容。推荐书目:《 HTTP 小书》。

2. 我相信既然初学必然不会满足用 Flask 写接口,那么要输出网页你还需要学习前端三板斧:HTML、CSS、JavaScript。推荐书书目:《 Head First HTML 与 CSS (第 2 版》和 《 Head First JavaScript 程序设计》

3. 有可能你需要存储数据,那么你可能需要用到数据库,虽然说你必然会使用 ORM 但是有时间还是看一些 SQL。推荐书目:《 SQL 基础教程(第 2 版)》

4. Flask 本身的功能不是很多,需要有很多插件配合,所以你需要了解一下各种插件。需要用自行 Google。

PS. 至于 《 Flask Web 开发》这本书是需要一点前端基础的,要不然看起来也是懵逼。

写个博客感觉有点难

忘了跟大家交代一句,我是刚从 php 转 python 的。

直接就是干吧,不要怂。

看书会把你的兴趣磨没的,遇到什么再查吧

从 php 过来做 python,有时会犯一些常识错误,比如要写一个 php 脚本测试某个功能,我会随便命名 php 脚本,但是换成 python,随便命名可能会与模块名冲突,以至于产生一些莫名其妙的错误。自己有没有意识到这个问题,可能会卡半天,

嗯,正需要熟悉流程

我试试

flask 太基础了,要靠自己的力量把一小块一小块的东西拼成一个框架。 最后搞出来可能也不三不四,入门建议学 Django。完整的展示了 Python web 的开发流程。学完之后,你就重新返回去写 PHP 了。

既然有 php 基础,那应该很容易上手的,比如你说的模块名冲突问题,是因为不熟悉,这种坑也没有什办法,只能自己一个个踩,但一共也没多少坑,很快就可以踩完了。

啊对了,要用 PyCharm 啊,绝大多数这些小问题都有提示。

  1. 吃透 Flask 文档
    2. 看完 Flask 代码
    3. 碰到任何 Web 框架,你就可以速成了

学 HTTP 先

在看 flask web 应用开发实战,感觉还不错,打算先把 flask 过一遍,基本搞懂,再去看 django,我用的就是 pycharm,昨天还尝试了 vscode

在看 flask web 应用开发实战,感觉还不错,打算先把 flask 过一遍,基本搞懂,再去看 django。对 python 更感兴趣,我才不要在回去搞 php,虽然 php 真的开发效率高,但大多都是增删改查,很难成为高级 php 工程师

自我感觉 http 还算熟悉

是的呢

伸手党问一下,我现在撸完了 w3schools HTML 和 CSS 教程,head first 系列是不是不需要了,接下来前端语言还要怎么深入一下?初步打算学 bootstrap。

另外《 JavaScript DOM 编程艺术》读完,《 JavaScript 高级程序设计》在读中。HTTP 理论部分补了《图解 HTTP 》和《 HTTP 权威指南》,《图解 TCP/IP 》在读中(感觉这个是不是不大需要…)。

自己是在自学后端,但是感觉前端不够,所有才有了上面。《 Flask Web 开发》读过了,HTML 部分语法都能看懂,但 bootstrap 样式全靠猜。SQL 只会了基本 MySQL 查询语法。现在后端也不知道该怎么深入,初步是按前边几楼建议读 Flask 文档。

+1 和题主一样,我也刚在学习入门,也在学习这本书,真是觉得太赞了,非常适合我类小白

bootstrap 已经过时了,学 react 吧

http 协议、数据库还算熟悉,现在需要解决的是对 python 的 web 框架的熟悉

学 python 是吧,送上一批视频教程,想学的可以看看
http://www.sucaihuo.com/video/172-0-0

直接撸项目,上手写个购物车

先收藏了

现在在看 python web 开发,感觉不错,准备先看完

不写博客,就写几个页面吧,页面可以在线增删改查的。

不建议搞 flask,坑太多,不如 django 好。其实 Python 这东西搞 web 前途还是很窄的,而且 Python 找工作还不好找,不如用 Python 去学习,如机器学习,大数据,之类的技术。算法工程师非常缺的,二线城市,平均也可达到 12k 左右。

感谢,我原先就是奔着人工智能、机器学习的目的,放弃 PHP 来学 Python 的,现在首要学好 flask,搞好本职工作,等工作无压力了再去看机器学习之类的

,不知道学的怎么样了,推荐一个 flask 的入门教程给你,讲的很清楚:

http://xc.hubwiz.com/course/562427361bc20c980538e26f?affid=20180315v2ex

回到顶部