V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qanniu
V2EX  ›  问与答

请教大家,业余需求需要做个输入界面, Python web 框架哪个最简单上手?

  •  
  •   qanniu · 55 天前 · 1683 次点击
    这是一个创建于 55 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1. 背景说明

    如题,小弟做芯片设计的,有些字符串(其实是寄存器)需要用 python 处理,洗一洗数据。 需要写一些小程序给组内用,但大家都不怎么安装 python 还有各种包。 pyinstall 的话打包个 window 界面起步 50M 。

    2. 需求

    **故打算弄个 web 界面,只需要作为 avgv 的可视输入即可。 ** 请教大家哪个好用。

    3. 目前的选择

    目前看的是 web.py, 不满意的地方:

    1. 界面简单,不知怎么用 css 美好,大家有套 css 的 demo 吗?
    2. 能能简单的框架吗,哈哈
    第 1 条附言  ·  55 天前
    目前 dash VS FastAPI
    还没想好用哪个。
    dash 做图表似乎更简单?
    36 条回复    2020-11-27 10:14:56 +08:00
    jayzau1973
        1
    jayzau1973   55 天前
    flask
    balabalaguguji
        2
    balabalaguguji   55 天前
    balabalaguguji
        3
    balabalaguguji   55 天前
    hushao
        4
    hushao   55 天前
    只有 windows 的话,易语言吧,需要 python 处理的话,调用一下 python 就行。易语言写界面
    jworg
        5
    jworg   55 天前
    说实话这样子,更建议搞个 linux 的机器开 ssh,每个人登上去跑,sz 拖数据过去跑,rz 取回来,简单的获取输入 /界面 /打印 cli 足以胜任,复杂的你用 web 也搞不定。搞芯片应该都对 linux 比较熟悉
    zjb861107
        6
    zjb861107   55 天前   ❤️ 2
    fastapi,带交互式 API 文档,可以当界面用
    cdlnls
        7
    cdlnls   55 天前 via Android
    弄个 flask 当后台,然后写个 html 模板,模板上只要加一个输入框,一个提交按钮,不要求美观的话,最多 15 分钟就能做好。
    ClutchBear
        8
    ClutchBear   55 天前
    后端用 flask, 几十行代码, jinja 模板

    css 的花, 建议用 bootstrap, 一个 css 引入就行.
    <link href="//cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css" rel="stylesheet">
    类似这样
    codepark
        9
    codepark   55 天前
    flask admin
    Jackeriss
        10
    Jackeriss   55 天前 via iPhone
    推荐做网页,桌面程序比网页复杂一些,而且还需要打包,坑比较多。推荐 FastAPI 或者 tornado
    BingoXuan
        11
    BingoXuan   55 天前 via Android
    pywebview
    cmdOptionKana
        12
    cmdOptionKana   55 天前
    不管你用哪个 Python web 框架,都是后端,管不了前端网页的美观,web 界面要另外再找东西来弄,比如用 bootstrap
    qanniu
        13
    qanniu   55 天前
    @jworg 丢人,不要高看做芯片的,以为都都知道 sz rz 一套指令
    qanniu
        14
    qanniu   55 天前
    @zjb861107 新知识 get
    Cbdy
        15
    Cbdy   55 天前
    你这个需求,根本不需要用 python,直接纯前端写个 html 就能搞定了
    qanniu
        16
    qanniu   55 天前
    @Cbdy 哎,隔行如隔山。
    比如我们经常上,就写个高通的 sensor 驱动,是个🐖就会。
    imn1
        17
    imn1   55 天前
    @Cbdy #15 +1
    能 send 到你机器的监听接口就行了,不需要 py,除非你接收后必须 py 处理一遍
    qanniu
        18
    qanniu   55 天前
    @zjb861107 谢谢,fastapi 看来半小时文档,很酷,似乎就是我要的东西。


    @imn1 当然要 py 一下了。很多逻辑 html 不好做(bu hui zuo)
    JinTianYi456
        19
    JinTianYi456   55 天前
    @jayzau1973 #1 `Do not use run() in a production setting.` 那应该怎么用?
    sunmker
        20
    sunmker   55 天前
    不难的话,直接 html,用 js 处理
    Cyanhall
        21
    Cyanhall   55 天前   ❤️ 1
    FastAPI 在一众成名已久的框架中再流行起来,值得一试

    参考 - 最流行的 Python Web 框架: https://www.cyanhall.com/cn/top/python-web-framework/
    lithbitren
        22
    lithbitren   55 天前   ❤️ 2
    找个文件夹直接建一个 index.html,然后在 index.html 的文件夹里的地址栏里输入 cmd 开终端,然后输入`python -m http.server 80`,然后就内网就可以通过 192.168.0.XXX/127.0.0.1 可以访问你的机子这个目录的 index.html 了。

    如果可以的话,直接在 index.html 直接写逻辑就完事了,如果实在不会写 js,就在该文件夹建立一个 cgi-bin 文件夹及内部再建立一个 clean.py 的文件,可以通过浏览器的首页访问也可以直接通过`127.0.0.1/cgi-bin/clean.py?input=转换内容`来执行 python 脚本。

    目录结构:
    --index.html
    --cgi-bin
    ----clean.py

    ```index.html
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <textarea id=input_data placeholder=输入></textarea>
    <div><button type=button onclick='exec_in_py.location.href = "cgi-bin/helloworld.py?input=" + document.getElementById("input_data").value'>洗数据</button>
    </div>
    <iframe name=exec_in_py></iframe>
    ```

    ```cgi-bin/clean.py
    import cgi

    print('Content-Type: text/plain\n')

    # 获取输入值
    inp = cgi.FieldStorage()['input'].value

    # py 写清洗数据的逻辑,只要改这里就得了
    inp += '\nby_py'

    # 输出到页面
    print(inp)
    ```

    更复杂的还是上框架吧
    lithbitren
        23
    lithbitren   55 天前
    命令行运行的是`python -m http.server --cgi 80`,ls 命令写错了,少了--cgi
    volvo007
        24
    volvo007   55 天前
    强烈推荐 flask
    https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
    看这篇非常详细的教程,b 站有带班的中文授课视频

    对于入门用户,比较难和有价值的一般是表单提交和登录管理,这个都有相应模块和对应的章节,对着敲几遍应该就能搞定了

    css 的话,比较推荐引入 flask-bootstrap 模块,直接实例化 app 页面,这样维护方便一些
    ClericPy
        25
    ClericPy   55 天前
    5 年前推荐 bottle, 5 年后依然 bottle

    平时不怎么纠结性能, 用个简单的方式就能绑定多线程或者 gevent 协程的 server
    qibing2000
        26
    qibing2000   55 天前 via iPhone   ❤️ 1
    @qanniu 那楼主可以出篇博文吗,就叫“交🐷写驱动”,😂
    renmu123
        27
    renmu123   55 天前 via Android
    没有基础推荐直接写个命令行,这种场景对安装包软件大小并不敏感
    levelworm
        28
    levelworm   55 天前 via Android
    @cmdOptionKana python 也可以搞前端,dash
    muzuiget
        29
    muzuiget   55 天前
    小程序直接用 Python 自带的 tkinter 不就好了。
    qanniu
        30
    qanniu   55 天前
    @lithbitren 辛苦辛苦,我自己都懒得这么细心回答别人呢。
    感谢。fastapi 我先试用几天,您的方案备用。
    qanniu
        31
    qanniu   55 天前
    @qibing2000 其实表面看就几行 code 搞定,冰山之下是数月到数年的背景基础知识积累。
    这些基础知识一些同事们总是想当然的觉得是人就天生就懂的。
    古人把这种现象简称隔行如隔山

    --- 换行业有感。
    qanniu
        32
    qanniu   55 天前   ❤️ 1
    @levelworm dash 这家伙和 jupyter 很像啊,似乎也很香,我有点变心了哈哈。
    目前 dash VS FastAPI
    还没想好。
    jayzau1973
        33
    jayzau1973   55 天前
    @JinTianYi456 自己写的小工具我都是直接 run 的
    TrickWu
        34
    TrickWu   55 天前
    flask 简单
    coolair
        35
    coolair   55 天前
    用 Django,自带 admin,换个皮肤,还挺好看。
    daimiaopeng
        36
    daimiaopeng   55 天前
    flask
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   5256 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:14 · PVG 14:14 · LAX 22:14 · JFK 01:14
    ♥ Do have faith in what you're doing.