V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
drymonfidelia
V2EX  ›  Python

Python 有没办法实现像 PHP 一样一个脚本文件==一个网页, stdout 直接输出到网页上?这个设计真不错

  •  
  •   drymonfidelia · Mar 18, 2024 · 3064 views
    This topic created in 776 days ago, the information mentioned may be changed or developed.
    17 replies    2024-03-19 22:01:31 +08:00
    tomczhen
        1
    tomczhen  
       Mar 18, 2024   ❤️ 1
    文艺复兴,CGI 模块都被弃用了。非要弄也容易,文件路由,配合模板输出就行。
    flyqie
        2
    flyqie  
       Mar 18, 2024
    真文艺复兴了。。

    python cgi 都多久没人用了。。
    drymonfidelia
        3
    drymonfidelia  
    OP
       Mar 19, 2024
    @tomczhen 我知道可以这么做,有没有现成的框架,现在的框架好像都是类似 MVC 那种结构
    drymonfidelia
        4
    drymonfidelia  
    OP
       Mar 19, 2024
    拿到了一堆控制台输入输出的屎山脚本,想快速批量转成 API 方便调用
    @flyqie
    mightybruce
        5
    mightybruce  
       Mar 19, 2024
    这个不限于框架了,简单点用重定向,或者启动一个子进程通过管道把结果传过来,方法很多。
    drymonfidelia
        6
    drymonfidelia  
    OP
       Mar 19, 2024
    @mightybruce 拿 Flask 写了一个,没办法并发,一个请求会把整个线程卡住,打补丁也不行
    mightybruce
        7
    mightybruce  
       Mar 19, 2024
    脚本属于阻塞式执行, 你要么搞个异步执行任务,得到结果返回通知,否则没有办法。
    drymonfidelia
        8
    drymonfidelia  
    OP
       Mar 19, 2024
    @mightybruce 我想到的办法是拿 php 调用 python ,但两个语言我都不是非常熟
    drymonfidelia
        9
    drymonfidelia  
    OP
       Mar 19, 2024
    php 的 cgi 能做到请求间互不影响
    mightybruce
        10
    mightybruce  
       Mar 19, 2024
    cgi 是协议,和语言无关, 现在还用 cgi 的也是老古董了,可以参考这个试试
    https://www.jianshu.com/p/62f0b9a3dd3e

    然后要么参考一下分布式任务执行框架如 celery 。
    FYFX
        11
    FYFX  
       Mar 19, 2024
    @drymonfidelia #6 可以用支持异步的 python web 框架试试
    dayeye2006199
        12
    dayeye2006199  
       Mar 19, 2024 via Android
    模板引擎,传统的 Django 那套
    realJamespond
        13
    realJamespond  
       Mar 19, 2024
    FreeMarker 了解下
    Belmode
        14
    Belmode  
       Mar 19, 2024
    模板引擎,Jinja2 + Django 或者 Flask ,正合适
    8355
        15
    8355  
       Mar 19, 2024
    所以干嘛不用 php
    EMMMMMMMMM
        16
    EMMMMMMMMM  
       Mar 19, 2024
    哈哈, NGINX 做足够了吧
    tomczhen
        17
    tomczhen  
       Mar 19, 2024
    php 不受影响是因为走的 php-fpm + fastcgi ,用 php-cli 的 -S 参数启动一样阻塞。

    用一个 wsgi server 库(比如: waitress )来启动 flask 并指定多个 worker/thread ,也可以不阻塞。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2507 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 06:48 · PVG 14:48 · LAX 23:48 · JFK 02:48
    ♥ Do have faith in what you're doing.