怎样用一个静态 HTML 跟 Python 程序交互呢?

2021-03-18 19:10:33 +08:00
 maloneleo88
我现在有的:
1.html 页面:form 字符串 提交
2.python 脚本:只有一个功能,获取字符串"1554***"拿去自动处理,然后 print 结果。

有什么最简单的方法将他们做成交互的呢?提交-然后出结果。 不会 flask.django 。
看了一眼教程,懵了,最后还都是搭建 blog,我用不到呀。 我只想通过网页重复提交来重复处罚 python 脚本运行得到结果,有什么极简的方法吗? ε=(´ο`*)))
3096 次点击
所在节点    Python
18 条回复
kyokuheishin
2021-03-18 19:14:05 +08:00
还是用 flask 写个后端获取表单内容吧,我寻思也不是很难
Cooky
2021-03-18 19:16:03 +08:00
都塞同一页面里呗
maloneleo88
2021-03-18 19:16:08 +08:00
@kyokuheishin 对我来说很难呀,有没有直奔主题的文章,一小时速成那种,老兄。
maloneleo88
2021-03-18 19:18:04 +08:00
@Cooky 塞哪个页面里?

我是想 html 输入------python 获取执行程序----------返回到 html 显示

python 不能扔 html 里跑呀,html 也扔不进 py 里。 咋弄??
junan0708
2021-03-18 19:21:10 +08:00
python 自带的 http server ?
Jwyt
2021-03-18 19:23:08 +08:00
flask 或 fastapi 很快的
no1xsyzy
2021-03-18 19:27:17 +08:00
flask 十分钟速成。就看 flask 官方文档的 Quickstart - A Minimal Application 就行了。
或者 FastAPI

其实 Python 能扔 HTML 里跑,WebAssembly
shyling
2021-03-18 19:32:26 +08:00
以前在 v2 上看到过一个人推自己的项目,类似于把 print(input('xxxx?'))转换成网页的形式,应该很适合你。(但忘了叫啥
shyling
2021-03-18 19:36:43 +08:00
cz5424
2021-03-18 19:38:35 +08:00
数据处理不复杂可以用 js 写一下
natsji
2021-03-18 19:41:39 +08:00
输出成 json
dsg001
2021-03-18 19:46:42 +08:00
这就别用 html 了

直接 txt 文档,python 监控文件是否修改,然后获取最后字符串进行处理
maloneleo88
2021-03-18 19:52:08 +08:00
@shyling 正在看,正是我想要的, !!! Nb
madpecker009
2021-03-19 08:17:58 +08:00
为什么不考虑 flask?
zzzmh
2021-03-19 09:32:25 +08:00
java 的逻辑是,写成接口,最简单的就是 servlet,请求接口返回字符串。前端用 xmlhttprequest 异步获取数据渲染到页面。。。python 不懂
SenLief
2021-03-19 10:06:03 +08:00
如果要求很简单并且不要求性能什么的,可以不用框架,而是用自带的 http.server 模块,自定义一个继承 http.sever.BaseHTTPRequestHandlerl 类,里面实现一个 do_POST 方法就可以了。
g00001
2021-03-19 10:14:08 +08:00
有个方案是直接嵌入 WebView
https://github.com/webview/webview
里面有 python 的封装。

如果是 Windows,可以用 aardio 嵌入 Python 和 WebView,WebView 可以直接调用 aardio 函数,aardio 函数可以直接调用 Python 函数,也就实现了 Javascript 间接调用 Python 函数。一个简单的例子:

import win.ui;
var winform = win.form(text="web.view")

import web.view;
var wb = web.view(winform);

import py;
var pyCode = /**
def testPy(): return "测试 test"
**/
py.exec( pyCode )

wb.external = {
testPy = function() return tostring( py.main.testPy() );
}

wb.html = /**
<html><head>
<script type="text/javascript">
aardio.testPy().then( v=>document.write(v) )
</script>
</head>
**/

winform.show();
win.loopMessage();
maloneleo88
2021-03-19 10:57:37 +08:00
@g00001
@SenLief
@zzzmh

谢谢, 昨晚用
@shyling 推荐的这个封装很轻易的实现了,直接 put_text return 结果,导一个输入,一个输出模块就可以。太适合傻瓜了

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

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

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

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

© 2021 V2EX