python编译器的使用,python的编译方式

  python编译器的使用,python的编译方式

  我们先来看一下效果(简单的写了一个):

  原理:将邮政请求的代码数据写入了服务器的一个文件,然后用服务器的大蟒编译器执行返回结果实现代码:#烧瓶运行。py #-*-编码:utf-8-*-# _ _ author _ _= ZJL from Flask import Flask import request from Flask import Response import JSON import zxbyapp=Flask(_ _ name _ _)def Response _ headers(content):resp=Response(content)resp。头[ Access-Control-Allow-Origin ]= * return resp @ app!)@app.route(/run ,methods=[ POST ])def run():if request。方法== POST 和请求。格式[ code ]:code=request。form[ code ]print(code)JSON data=zxby。main(code)返回Response _ headers(str(JSON data))@ app。错误处理程序(403)def page _ not _ found(错误):content=JSON。转储({ 错误代码: 403 })resp=Response _ headers(内容)返回

  #zxby.py# -*-编码:utf-8 -*-# __author__=ZJL 导入操作系统,系统,子进程,临时文件,时间#创建临时文件夹,返回临时文件夹路径TempFile=tempfile.mkdtemp(后缀=_test ,前缀=python_)#文件名FileNum=int(time。time()* 1000)# python编译器位置EXEC=sys.executable#获取大蟒版本def get _ version():v=sys。version _ info version= python % s . % s %(主要版本,次要版本)返回版本#获得巴拉圭文件名def get_pyname():全局FileNum返回测试_ % d“% FileNum #接收代码写入文件def write_file(pyname,code):fpath=OS。路径。join(TempFile, % s . py % pyname )与open(fpath, w ,encoding=utf-8 )作为f: f.write(代码)print(文件路径:% s“% fpath”)返回fpath#编码def decode:try:return s . decode( utf-8 )除unicode解码错误:return s . decode( gbk )#主执行函数def main(code):r=dict()r[ version ]=get _ version()pyname=get _ pyname()fpath=write _ file(pyname,code)try:# subprocess。检查_输出是父进程等待子进程完成,返回子进程向标准输出的输出结果# stderr是标准输出的类型输出数据=解码(子过程。check _ output([EXEC,fpath),stderr=子进程.STDOUT,timeout=5))子进程除外。调用了过程误差作为e: # e .输出是错误信息标准输出# 错误返回的数据r[ code ]= Error r[ output ]=decode(e . output)return r else:#成功返回的数据r[输出]=输出数据r[代码]=成功最后返回r:#删除文件(其实不用删除临时文件会自动删除)试试:OS。remove(fpath)Exception as e:exit(1)if _ _ name _ _= _ _ main _ _ :code= print(11);打印(22)打印(主(代码))运行app.run()方法,通过邮政提交代码,就好的了。我们可以对输出结过做进一步的处理,我这只是为了解一下原理,就没继续了。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: