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

2020-11-26 17:25:34 +08:00
 qanniu

1. 背景说明

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

2. 需求

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

3. 目前的选择

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

  1. 界面简单,不知怎么用 css 美好,大家有套 css 的 demo 吗?
  2. 能能简单的框架吗,哈哈
2832 次点击
所在节点    问与答
36 条回复
Cyanhall
2020-11-26 20:52:53 +08:00
FastAPI 在一众成名已久的框架中再流行起来,值得一试

参考 - 最流行的 Python Web 框架: https://www.cyanhall.com/cn/top/python-web-framework/
lithbitren
2020-11-26 21:54:33 +08:00
找个文件夹直接建一个 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
2020-11-26 21:57:53 +08:00
命令行运行的是`python -m http.server --cgi 80`,ls 命令写错了,少了--cgi
volvo007
2020-11-26 22:01:58 +08:00
强烈推荐 flask
https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
看这篇非常详细的教程,b 站有带班的中文授课视频

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

css 的话,比较推荐引入 flask-bootstrap 模块,直接实例化 app 页面,这样维护方便一些
ClericPy
2020-11-26 22:58:00 +08:00
5 年前推荐 bottle, 5 年后依然 bottle

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

--- 换行业有感。
qanniu
2020-11-27 08:30:37 +08:00
@levelworm dash 这家伙和 jupyter 很像啊,似乎也很香,我有点变心了哈哈。
目前 dash VS FastAPI
还没想好。
jayzau1973
2020-11-27 09:53:55 +08:00
@JinTianYi456 自己写的小工具我都是直接 run 的
TrickWu
2020-11-27 10:01:01 +08:00
flask 简单
coolair
2020-11-27 10:05:13 +08:00
用 Django,自带 admin,换个皮肤,还挺好看。
daimiaopeng
2020-11-27 10:14:56 +08:00
flask

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/729573

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX