0%

Flask集成React前端部署

Build React 文件

  • 打包 React

    1
    npm run build
  • 得到build目录下的静态文件

20200429234258

20200429234325

设置 Flask

Flask 默认静态资源在static目录,html文件在template目录,我们设置成我们自定义的路径。

  • 例如我们的目录结构

    20200429234735

  • 我们构建好的静态文件放在/frontend/flask-mark-12306-captcha-frontend/build这个目录里

  • 我们的在 App.py (你的应用程序入口)里面设置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    from flask import Flask, render_template
    from api import mark
    from api import get
    from controller import errorHandler
    import os

    # 静态文件目录
    frontEndDir = os.path.join("frontend", "flask-mark-12306-captcha-frontend", "build")

    app = Flask(__name__, static_url_path='', static_folder=frontEndDir)
    app.register_blueprint(errorHandler)
    app.register_blueprint(mark)
    app.register_blueprint(get)

    # 渲染 index.html
    @app.route('/')
    def main():
    return render_template("index.html")

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

  • 这样我们就设置好了。

  • 跑一下项目看一下。

  • 问题解决。

    20200429235845

Flask部署Keras模型遇到的问题

AttributeError: ‘_thread._local’ object has no attribute ‘value’

20200428200312

  • 定位到 tensorflow_backend.py 这个文件

  • 在这个位置

    1
    2
    3
    4
    5
    6
    7
    8
    @functools.wraps(func)
    def symbolic_fn_wrapper(*args, **kwargs):
    if _SYMBOLIC_SCOPE.value:
    with get_graph().as_default():
    return func(*args, **kwargs)
    else:
    return func(*args, **kwargs)
    return symbolic_fn_wrapper
  • 增加

    1
    _SYMBOLIC_SCOPE.value = True
  • 变成这样

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @functools.wraps(func)
    def symbolic_fn_wrapper(*args, **kwargs):
    _SYMBOLIC_SCOPE.value = True
    if _SYMBOLIC_SCOPE.value:
    with get_graph().as_default():
    return func(*args, **kwargs)
    else:
    return func(*args, **kwargs)
    return symbolic_fn_wrapper
  • 问题解决

20200428200702

VSCode 同步设置

Visual Studio Code 因其轻巧和插件繁多已经逐渐成为我的主力开发工具。当我准备更换电脑在笔记本上开发时候的时候,我碰到了一个棘手的问题。我得重新下载插件和设置VSCode,难道我得记下台式机上所有的设置和插件然后到笔记本上重新设置和下载?这显然不符合Geek精神!有一款现成的插件可以解决我们的问题。

阅读全文 »

ESXI 更改网卡速率并设置脚本

起因

用闲置主机搭了一个ESXI,上面用Ubuntu跑了一个Samba服务做家庭文件中心。

平常从PT站下的资源直接放到这里提供给家里的小米电视和各种盒子等。

问题

一次从服务器拷贝文件的时候发现速度只有

百兆带宽不到?

阅读全文 »

使用Flask部署Keras模型并提供Restful接口

前言

当我们训练好了模型后想发布出去,提供Restful风格的API供外部使用,这个时候我们可以选择任意选择一款Web框架进行发布。我之前使用过Django,但是感觉有些繁琐,所以我更倾向于使用Flask这个框架,因为这个框架的路由标注方式跟Java的Springboot非常相似。接下来我们用之前训练的识别12306验证码的模型来进行部署。

阅读全文 »

Python+Keras 实现识别12306验证码

前言

CNN卷积神经网络在图像识别领域大放异彩使图形验证码的防护作用大大下降,我们需要寻找一种新的方式来代替传统的验证方式,识别操作者究竟是屏幕前的真人还是网络中的机器人。

本文旨在通过识别12306验证码为例来验证,来探讨图形验证码在当下深度学习技术的支持下,究竟还有多少用武之地。

阅读全文 »

Spring Boot 集成 React 前端路由问题

0x00 背景

趁着最近疫情窝在家无所事事,着手为自家的公寓开发了一个简易管理系统,实现了入住登记,缴纳各种费用等一些常用功能。

0x01 问题

打算把React和SpringBoot打成一个Jar包,然后直接丢到Docker上进行部署,映射一个端口出来提供服务。但是发现这样的话SpringBoot会接管前端路由,导致找不到地址的时候SpringBoot直接抛404,前端路由无效。

阅读全文 »