V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
maloneleo88
V2EX  ›  Python

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

  •  
  •   maloneleo88 · 2021-03-18 19:10:33 +08:00 · 3229 次点击
    这是一个创建于 1332 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在有的:
    1.html 页面:form 字符串 提交
    2.python 脚本:只有一个功能,获取字符串"1554***"拿去自动处理,然后 print 结果。

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

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

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

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

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

    谢谢, 昨晚用
    @shyling 推荐的这个封装很轻易的实现了,直接 put_text return 结果,导一个输入,一个输出模块就可以。太适合傻瓜了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1099 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:29 · PVG 07:29 · LAX 15:29 · JFK 18:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.