留言板

有什么想对我说的,就写在这里吧。留言表单在最下面(点击前往)。

代码块可以使用 <pre></pre> 进行格式化,不过编程问题建议发到 代码厨房论坛

留言板》上有216条评论

  1. 头像爱动脑子的土拨鼠

    辉哥,看了你关于找工作相关的博客,想参考下面试关于Linux和HTTP或者网络该准备哪些内容呢。这部分一直没有清晰的方向。

    回复
  2. 头像ff

    博主您好,最近自学玩flask项目,准备找工作,有什么企业级的项目推荐吗,想写在简历上面,希望给点建议 万分感谢

    回复
  3. 头像shy

    Grey,apiflask中的例子要记得更新啊,比如这个token_auth.py中 有两处错误 user = get_user_by_id(id)
    def get_secret(id):

    回复
  4. 头像Legion

    请问一下什么时候会出些学习英文或者第二第三语言的文章,最近在自学英语和日语,但没什么实质性的进展,希望能从这儿学到新的方法。

    回复
  5. 头像afei2003

    作者勘误做的非常好,我也来反馈一点:
    版次:2023年1月第1版第12次印刷
    第4页:虚拟环境(virtual enviroment) 单词 少了一个‘n’。

    environment

    回复
  6. 头像张嘎子

    您好,我想问一下,flask有连接samba协议访问smb文件共享服务器的库吗?我搭了一个有samba共享服务的磁盘阵列,想要再用flask搭建一个管理资源的网站,但是中文互联网上好像没有这方面的教程,pypi好像也没有可以实现类似功能的包,您是否有什么解决方案?

    回复
  7. 头像HEI

    你好,最近想要了解一下flask,就去查看了官方文档。
    发现没有中文版,然后由您在github上发起的翻译项目也几个月没更新了。

    我想了解的同时,也尝试翻译一份文档。
    现在有个问题想要咨询您,你们的.po文件是如何从初始文档.rst中提取出来的呢?谢谢

    回复
      1. 头像HEI

        哈哈哈,我暂时不知道我能不能胜任,只是先有这个念头,我自己先折腾下哈。

        然后这个工具我看看,谢谢。

        回复
  8. 头像真的抱歉我来催功能了

    大佬能不能fix下 flask cli的 flask shell 在装了ipython的情况用ipython 默认的shell不能Tab 很不方便调试 感谢!

    回复
  9. 头像随便看看

    辉哥,我们是同事吗,难道,很惊讶!买了你的那本厚厚的flask,抱歉一直在吃灰哈哈,我就在dell emc看的你找工作的文章,我的找工作经历也跟你比较像,我也是新员工,希望认识下大佬。

    回复
  10. 头像giser新手

    您好,我想向您请教一下您之前做的gisflask项目,我在相关网站发现了您的文章,我将数据进行了下载,在按照您的步骤进行下一步操作时,flask run命令始终进行不了,想向您请教一下该怎么做

    回复
    1. 头像李辉 文章作者

      > 您之前做的gisflask项目
      gisflask 是什么?我没有做过这个东西。

      > 在相关网站发现了您的文章
      哪个网站?哪篇文章?

      > 按照您的步骤进行下一步操作
      什么操作?

      > flask run命令始终进行不了
      进行不了是指什么?输出是什么?

      很久没有遇到这么糟糕的提问了。我又不是先知,这样的问题根本没法回答。麻烦把问题发到 HelloFlask 论坛吧,尽量提供足够充分的信息。

      回复
  11. 头像Flasker

    你好,请教下你平时用什么ide进行flask web开发的?
    我这边使用pyCharm,在使用到Flask-SQLAlchemy的时候发现很多字段无法自动提示和代码不全,比如db.Integer, db.Column, db.String。

    回复
  12. 头像-Farmer

    hello greyli, 最近我开始尝试将博客内容如你这样多端发布,但我发现微信订阅号后台不支持markdown编辑,不知道你是怎么解决这一问题的?

    回复
    1. 头像李辉 文章作者

      我是手动复制粘贴的……不过有这种多端发布工具,你用关键字可以搜到,我没用过所以就不做推荐了。

      回复
  13. 头像wn

    我最近在用flask做一个定时计划, 中间使用了celery ,我找了很多资料,flask celery 结合工厂函数,遇到了很多问题,单独封装tasks的模块调用时会出现循环调用,整个项目的文件路径没有很好的规划,寻找大神的指导

    回复
  14. 头像Ethan

    Grey你好,恭喜你拿到了第一个offer!请问你有没有兴趣把这段时间找工作的经历写一篇文章?还有如果像你一样,可以找到一份开源社区或者外企的工作,应该去哪里寻找招聘信息,谢谢。

    回复
  15. 头像徐文彬

    李老师你好:
    我想问Flask-session采用redis作为存储媒介,假如我需要把当前登录用户的相关信息(只是此信息有点大),后续的接口从session中取信息是否可以全部取到。大数据量写session是否存在时延

    回复
    1. 头像李辉 文章作者

      你好。按照我的理解,服务器端 session 尽管可以存储超过 cookie 大小限制的数据,但是本质上仍然是用来存储用户会话信息的(比如用户 ID,页面设置偏好),如果数据量很大,那最好是存到数据库。

      回复
  16. 头像wn
    @api_bp.route("/users/:user_id", endpoint='user')
    class User(MethodView):
        def get(self, user_id):
            return {"message": "ok"}
    
        @input(UserInSchema(partial=True))
        @output(UserOutSchema)
        def post(self,data):
            return {"message": "ok"}
    
        def patch(self, user_id):
            return {"message": "ok"}
    
        def delete(self, user_id):
            return '', 204
    

    在上面的APIFLASK代码中, 如何针对POST方法去除 /users/:user_id 中的 :user_id

    回复
    1. 头像李辉 文章作者

      使用 api_bp.add_url_rule 方法来为不同的 HTTP 方法注册多条路由(去掉 route 装饰器):

      user_view = User.as_view('user')
      api_bp.add_url_rule(user_view, '/users/', methods=['GET', 'PATCH', 'DELETE'])
      api_bp.add_url_rule(user_view, '/users', methods=['POST'])
      
      回复
  17. 头像赵凯

    李老师您好,请问下Bootstrap-Flask会有后续兼容Bootstrap5.x的更新吗?现阶段Bootswatch已经更新到Bootstrap5.x版本,使用render_form等宏的时候会出现一些显示上的问题,因为 Bootswatch5.x 提供了一些新的组件,能够弥补现有的不足,希望得到李老师的回复,我是可以继续期待Bootstrap-Flask兼容Bootstrap5版本还是应该果断放弃使用此插件。

    回复
  18. 头像Hash

    李辉你好,

    我在 keybase 使用过程中发现如下功能:

    keybase.io 在浏览器上传公钥表单之后,需要发送 curl POST 请求给另一个端点,内容为私钥加密的特定信息。发送之后浏览器会自动跳转到成功页面。

    疑惑之处在于,根据我的理解,http 不保持连接,且无状态,端点函数之间没有关系。那么服务端是怎么将一个端点的信息转给另一个端点,并通知浏览器的?

    (最好不要使用插件或现成的装饰器实现,我只想知道原理)

    回复
    1. 头像李辉 文章作者

      一般这种请求间数据交互,要么数据存储在后端,然后每次请求携带身份信息。要么是都是浏览器发送请求,数据存到 cookie 里。其他就不清楚了。你说的这个猜测是浏览器提交的信息和发送 POST 请求的信息之间有关联?

      回复
    1. 头像李辉 文章作者

      我对 Pydantic 还不够熟悉,所以暂时没法给出代码设计和用法上的对比分析,后续有时间会写单独一篇文章。

      回复
  19. 头像wang

    《Flask Web 开发实战》前不久买了这本书,实战篇第一个案例就出现了很多问题:
    1.按照书上的结构编写代码会出现找不到包的情况(就是程序文件夹名称下的py文件,找不到文件夹名)
    2.为了解决问题1,将所有代码整合到一个文件内,html文件复制鱼github文件。结果现‘jinja2.exceptions.TemplateNotFound:bootstrap/form.html’。
    总之这本书体验下来,不如‘flask-tutorial-master’这个项目收获大。

    回复
    1. 头像李辉 文章作者

      找不到包不清楚是什么原因(没有在包内创建 __init__.py文件?),需要提供更多信息。「jinja2.exceptions.TemplateNotFound:bootstrap/form.html」报错一般因为没有安装依赖 bootstrap-flask。建议把问题详情发到论坛

      回复
  20. 头像荣兴

    读了你的《Flask Web 开发实战》,写得很好,很清晰。期待第二版和《Python Web API 设计与开发》

    回复
  21. 头像Mack

    Hi 博主, apiflask 是不是少了蓝图嵌套(比如需要做版本控制,/api/v1)以及docs页面上使用Authorize?

    回复
    1. 头像Mack

      抱歉,我尝试使用@auth_required(auth) 装饰器之后swagger ui 页面中已经可以使用Authorize,至于嵌套蓝图,目前我在蓝图的url_prefix中添加/api/v1

      回复
  22. 头像Litan

    大佬用的也是wordpress啊,… – -|| 之前在看Django,发现太复杂了,… 现在来看Flask,… 不知道会不会比Django更强,或者用的人更多,…

    回复
  23. 头像Ac

    受益匪浅,感谢作者的辛勤付出。
    现在的开发已经向前后端分离发展,flask方面是否有相关学习和提高的最佳实践?

    回复
  24. 头像Wang Wei

    您好!
    我最近发现一个网站做得非常好(https://ark.alien-tomato.com/)。我自己也想试着做一个类似的网站,主要是把一些公开的GDP,失业率,物价指数等数据用图形的方式展示出来。我准备用python来做。想请教您如果要做成那样的网站,大概需要如何构架。
    谢谢您!

    回复
    1. 头像李辉 文章作者

      后端渲染页面模板并提供返回对应数据的 API(返回字典会自动转换为 JSON 格式);前端使用 Echarts 之类的 JS 库渲染图表,并使用 AJAX 获取后端 API 返回的数据来更新页面。如果实现的过程中遇到了问题可以发到 HelloFlask 论坛

      回复
  25. 头像清风Python

    @admin_bp.route(‘/upload’, methods=[‘POST’])
    def upload_image():
    f = request.files.get(‘upload’)
    if not allowed_file(f.filename):
    return upload_fail(‘Image only!’)
    f.filename = f'{uuid.uuid1()}.png’ # 重命名图片名称
    f.save(os.path.join(current_app.config[‘BLUELOG_UPLOAD_PATH’], f.filename))
    url = url_for(‘.get_image’, filename=f.filename)
    return upload_success(url, f.filename)

    你好,这两天在学习Bluelog的博客项目时发现,如果新建博客,直接使用截图工具截图,然后ctrl+V粘贴到文章时.
    每次截图的FileStorage都是:

    暂时通过图片校验后,使用uuid进行重命名存储,github下载的最新代码,不知道哪里有问题。
    求教…

    回复
  26. 头像jiangyuxu

    李哥,你能不能出一期视频啊,就在慕课网上来一期flask的视频。看书看的有点头疼

    回复
  27. 头像金刚

    事务邮件服务现在还可以用SendGrid吗?注册的时候需要很多项需要填写呢,有的还需要网站链接什么的,都需要公司的信息呢

    回复
  28. 头像key

    你好,在你的两本关于flask的书籍中,jinja2模板导入外部css代码时均使用“src”,导致css无法成功导入,亲测使用”href“后成功导入。如是代码错误,请及时更正。

    ps:感谢作者的优秀作品!

    回复
    1. 头像李辉 文章作者

      你好,你说的「jinja2模板导入外部css代码时均使用“src”」具体在哪里?书稿和程序源码里都没找到……

      回复
  29. 头像小猴子

    可以写一些与一有流行的前端框架相结合的知识么,比如flask+vue,flask+react,flask+jquery等。另外,现在大数据dashboard很火,可否做成例子放在书里?谢谢

    回复
  30. 头像Andie

    Flask Web开发实战:入门进阶书中第四章

    – 代码清单4-6 form/app.py:表单验证与获取数据:
    原本:
    username = form.username.data
    应为:
    username = form.username[‘data’]

    回复
  31. 头像chenm

    你好,我在使用flask-dropzone上传文件时,windows系统中,发现针对长文件名,带空格的,会出现上传不成功的问题,故障:Request Entity Too Large。 但是在ubuntu中,同样的文件可以上传成功。请大神指点下什么原因?

    回复
    1. 头像李辉 文章作者

      电子书每次更新出版社都会发送文件给电子书平台,但是更不更新就要看电子书平台了。我会跟出版社反馈一下。亚马逊的版本会新一点。

      回复
  32. 头像JAL

    你好,关注你有一段时间了,非常喜欢你写的书《Flask Web 开发实战》,茅塞顿开的感觉。希望如果你有空的话,按照不同的阶段和类别推荐一些编程及相关的书籍,谢谢。

    回复
    1. 头像李辉 文章作者

      谢谢,很高兴能帮到你。编程书我看的其实不多,可以找找其他人的推荐,记得 Stack Overflow 上有一个很好的计算机图书推荐帖。

      回复
  33. 头像大的大幅度

    我也几乎不会发朋友圈和其他社交网站的状态,也是感觉像是在广场上喊话。人文方面的思考推荐看一个节目《圆桌派》或者往期的《锵锵三人行》,几个中老年人聊天,听一听有时候还是挺有意思的

    回复
    1. 头像李辉 文章作者

      感谢推荐!社交动态的话,我计划在 Twitter 上同步发一些东西,稍微向外界暴露一些真实的自己,更容易交到志趣相投的朋友。

      回复
  34. 头像黄安泰

    你好,我用flask建站,部署的话我用flask+tornado部署,但是页面有blueprint的话就部署不了,请问有什么好的部署方法吗?测试的时候,Flask运行很慢。

    回复
    1. 头像李辉 文章作者

      可能的原因太多了,不提供具体报错和代码,我没法判断。麻烦把问题发到 HelloFlask 论坛或是 GitHub 上(链接见留言板上方正文)。

      回复
    1. 头像李辉 文章作者

      Bootstrap 默认字体:font-family: -apple-system,BlinkMacSystemFont,”Segoe UI”,Roboto,”Helvetica Neue”,Arial,sans-serif,”Apple Color Emoji”,”Segoe UI Emoji”,”Segoe UI Symbol”;

      回复
        1. 头像李辉 文章作者

          不客气。网站的字体设置可以在 CSS 代码里看到,你可以打开浏览器的开发者工具,在「元素」面板看到 CSS 代码,如果是中文站点建议参考其他中文网站的设置。

          回复
  35. 头像18847318174

    老铁,那本flask的书和实际操作出入有点大,而且和远程Git仓库的也不太一样,我泪奔了

    回复
    1. 头像李辉 文章作者

      具体说说,哪里操作有出入?远程仓库除了修复 bug 外基本没有变动,具体可以参考 commit 历史。你说的不一样有可能是忘记签出对应的 Git  标签了。书里的代码是在演进的,每一次演进都记录到了对应的 Git 标签里,你需要根据书里的提示签出对应的标签,而不是看最终版本的代码。

      回复
      1. 头像18847318174

        boostrap-flask,我如果想要换肤,该怎么做,求大神。个人博客的model有的字段不一样。

        回复
  36. 头像无名V小卒

    老师您好,我刚刚开始接触flask,阅读了您的教材《flask web开发实战》拷贝了sayhello的代码,但是部署到本地运行的时候总报错,内容为ERROR: test_index_page (__main__.SayHelloTestCase)….,不知道是什么原因,还请您指教!编译器用的pycharm。

    回复
  37. 头像x_long

    您好,我使用是Windows系统。在全局下通过pip install pipenv安装了pipenv,但在项目的helloflask项目下使用pipenv install创建虚拟环境是出错,错误提示信息为,
    Complete output from command “D:\Python virtual\he…Q\Scripts\python.exe” – setuptools pip wheel:
    Traceback (most recent call last):
    File “”, line 3, in
    ModuleNotFoundError: No module named ‘pkgutil’
    在论坛上也为搜索得到解决方案,冒昧打扰,还望海涵。期待您的答复!谢谢
    ——一名热爱python的学生

    回复
  38. 头像Richard

    您好!

    想问下 deploy 一个用上 Flask-CKEditor 的 web app 要怎么实现。我在自己电脑运行development server就没问题,上传图之类的功能都可以(我用Pycharm的),可是一样的代码放上Pythonanywhere deploy就不行了,就只有个模样出来,但什么功能都没有(就text bold, 上载图片之类的按钮都用不了,连在textarea里面打字之后尝试发到database,textarea里面的内容没有接收到)。

    deploy之前已经从pythonanywhere的bash console里面装了Flask-CKEditor,所以 server 应该是能 import 这 package。

    求指导,谢谢!

    回复
  39. 头像lt

    1我把sayhello-master这个项目导入pycharm后,运行__init__文件。显示 Process finished with exit code 0。
    2此时我在浏览器输入 http://127.0.0.1,会显示无法访问此网站。
    3 面对这种情况,我在命令行输入了 flask run(参考你的书上第一张内容)。这时候会显示 app.py or wsgi.py was not found in current directory 以及什么没有设置 FLASK_APP环境变量。
    4 面对3的当前目录没有发现app.py or wsgi.py的问题,该怎么处理呢?

    回复
        1. 头像李辉 文章作者

          你应该是没有安装 Pipenv,如果没有使用虚拟环境的话,那个帖子里提到的 pipenv shell 命令可以跳过,直接执行 flask forge 命令。

          回复
      1. 头像lt

        昨天注册了 helloflask论坛,晚上十二点才收到邮件回复。今天使用论坛提问时,花费了很长时间都没办法发帖子。这让我很受挫,是网站账号激活的问题还是我不会使用??、??????

        回复
  40. 头像WalkerZ

    关于《Flask Web开发实战:入门、进阶与原理解析 (Web开发技术丛书)》的问题:
    你好,我用的是Mac版的kindle软件,在下载后,打开后无法显示任何内容,全部是一片空白。。
    其他电子书都是正常的。

    回复
  41. 头像Jualy

    大佬,在学习Flask过程中,碰到一个问题,能不能帮忙抽空看一看呢?

    源代码: https://github.com/jualy007/navigation

    Debug 所有请求都是404,在RuleMap 看到了注册的路由,我列出其中一条:
    Rule ‘/home’ (HEAD, OPTIONS, GET) -> home.hometest

    访问 127.0.0.1:8000/home 的时候404, console 日志:
    127.0.0.1 – – [02/Jan/2019 18:25:35] “GET /home HTTP/1.1” 404 –

    回复
  42. 头像村中少年好事者

    你好, 在pythonanywhere部署时连接数据库遇到了点问题

    已经知道了Database host address,和Username,但是在.env里面DATABASE_URL改怎么改呢。

    因为书上没有具体的介绍,希望得到帮助。 谢谢!

    ps:用mysql的url写法,又会报错no module "mysql"

     

    回复
    1. 头像李辉 文章作者

      先安装 PyMySQL: pip install pymysql。数据库 URL 的值类似:mysql+pymysql://username:password@username.mysql.pythonanywhere-services.com/username$dbname。记得替换其中的 username 为你的用户名,password 替换为数据库密码,dbname 替换为数据库名称。

      回复
  43. 头像keejo

    关于celery和flask的使用,单实例的我已经跑通了(https://github.com/keejo125/flask_celery_redis_demo),但是在工厂模式下的flask不知道该怎么配置了,参考了网上一些建议实在弄不明白,celery单独配置的话,那如何在flask里引用呢,启动的时候怎么获取flask里面配置的任务? 好像书中celery章节内容取消了。。。 求指导,谢谢

    回复
          1. 头像Michael翔

            我点击http://greyli.com/feed/,报错如下:https://ws2.sinaimg.cn/large/006tNbRwly1fxkpgkwdfzj30o50403z6.jpg
            看了一点inoreader,确实可以看到文章,但是会提示源有点问题

          2. 头像joyc

            应该没消失吧 

            提示如下:

            Warning: mysqli_query(): MySQL server has gone away in /home/withlihu/public_html/wp-includes/wp-db.php on line 1924

            Warning: mysqli_query(): Error reading result set's header in /home/withlihu/public_html/wp-includes/wp-db.php on line 1924

            建立数据库连接时出错

  44. 头像mich

    大神,你的那个blog我部署在linux系统上面怎么有编码错误:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 0: ordinal not in range(128)
    知道如何解决吗

    回复
  45. 头像dedelong

    在旁听哈佛CS50,老师教的flask,太快跟不上,网上搜到您写的专栏,帮助特别大!买了书以表支持 :)

    回复
  46. 头像星宇

    您好!冒昧提问:

    我是一名Python爱好者,在您的github上clone了bluelog来学习。

    我期望在您的源码基础上,在新增博客文章功能上,能够上传图片。遂找到如下地址作为参考:http://flask123.sinaapp.com/article/49/ 。此案例中,图片完成上传,并将图片储存好的地址返回 CKEDITOR 的 img url 中,需求的功能是能够实现的。

    于是,我在 bluelog/blueprint/admin 中,添加了如下代码:
    @admin_bp.route(‘/post/test’)
    def ptest():
    return render_template(‘admin/ptest.html’)

    @admin_bp.route(‘/post/ck_uploads/’,methods=[‘POST’, ‘OPTIONS’])
    # @login_required
    def ck_uploads():
    “””CKEditor file upload”””
    error = ”
    url = ”
    callback = request.args.get(“CKEditorFuncNum”)
    if request.method == ‘POST’ and ‘upload’ in request.files:
    fileobj = request.files[‘upload’]
    fname, fext = os.path.splitext(fileobj.filename)
    rnd_name = ‘%s%s’ % (gen_rnd_filename(), fext)

    # filepath = os.path.join(app.static_folder, ‘upload’, rnd_name)
    filepath = os.path.join(‘本地静态路径’, ‘upload’, rnd_name)

    # 检查路径是否存在,不存在则创建
    dirname = os.path.dirname(filepath)
    if not os.path.exists(dirname):
    try:
    os.makedirs(dirname)
    except:
    error = ‘ERROR_CREATE_DIR’
    elif not os.access(dirname, os.W_OK):
    error = ‘ERROR_DIR_NOT_WRITEABLE’

    if not error:
    fileobj.save(filepath)
    url = url_for(‘static’, filename=’%s/%s’ % (‘upload’, rnd_name))
    else:
    error = ‘post error’

    res = “””
    window.parent.CKEDITOR.tools.callFunction(%s, ‘%s’, ‘%s’);
    “”” % (callback, url, error)

    response = make_response(res)
    response.headers[“Content-Type”] = “text/html”
    return response

    并在templates/admin下,添加了html代码:

    demo

    demo

    CKEDITOR.replace(‘content’, {
    filebrowserUploadUrl: ‘ck_uploads/’,
    });

    但得到的是 400 错误反馈。服务器不能读懂这个request。对比运行成功的代码,唯一区别之处,成功的案例是通过app = Flask(__name__)来初始化应用的,而您的案例是使用admin_bp = Blueprint(‘admin’, __name__)来初始化的。
    请问问题是否在这里呢?希望您不吝赐教!

    盼复!

    回复
  47. 头像买买

    同跨专业学编程,初学半年Python基础,最近用flask搭自己的博客有很多问题不得解,看了你的专栏里有些思维豁然开朗,又看到你的博客特别精致,翻了个遍想看看有没有搭博客的内容,于是很好奇想问这个博客的语言是辣个?

    回复
      1. 头像hunter

        博主你好,我也是看了你的hello flask专栏,写的很棒,进而关注到的。我看到许多个人博客的主题都是“用WordPress搭建的,主题是Twenty Twelve”。我那会也想搞一个博客,想借鉴下这个模板。但是我会的语言是Python,看到这个php主题的不知道怎么使用他,博主可以给点提示么

        回复
        1. 头像李辉 文章作者

          你好!这个不涉及编程,大致下面这些步骤:

          1、买域名

          2、买主机

          3、安装WordPress

          4、进入仪表盘-外观-主题-搜索安装并启用

          回复
  48. 头像黄张朋

    在豆瓣看到你的回复那个培训机构的网站,挺喜欢,然后顺藤摸瓜到了这,看到博客也喜欢,求联系,喜爱flask !!!扣扣917086506

    回复

撰写评论

电子邮件地址不会被公开,必填项已用 * 标出。