首页天道酬勤python能做网站开发吗,python 做网站

python能做网站开发吗,python 做网站

张世龙 05-12 11:08 58次浏览

前几天,一位朋友提出了用python写python解释器的方法。 我觉得这是个好问题,所以我去看了。 我打算用python写一下。 后来,我发现有一个。 python中的subprocess非常有趣,他可以解释python自己的代码。 在那之后

今天我们来分享一下如何用python写在线python吧。

首先,它是结合python的flask框架完成的。 首先,我将介绍flask框架。

Flask也被称为“微框架”。 因为使用简单的核心,在扩展中添加其他功能。 Flask中没有默认使用的数据库、表单验证工具。 但是,Flask具有扩展灵活性,可以在Flask-extension中添加这些功能。 ORM、表单认证工具、文件上传和各种开放认证技术。

使用终端运行命令提示符CMD,然后执行以下操作:

pip安装闪存

在我们工作之前,让我们先了解一下flask框架是如何工作的:

首先创建flaskrun.py文件。 (写demo,然后在此基础上进行更改,即可用作网站后端的接口。 )

每个函数上面都有修饰符。 这代表他的路线。 例如,@app.route('/' ),它是指定的。 以下函数的地址为127.0.0.1:5000/。 (默认端口为5000,可以通过run方法手动更改。 ) ) )

运行此文件之前,如果我们没有设置app文件,则必须先设置它,使其进入调试模式,然后运行。

set FLASK_APP=flaskrun.py

set FLASK_DEBUG=1

flask run

到达run后,服务将启动并跳出这样的接口。

现在,您可以访问路由了。 因为想访问index方法,所以输入路由。

如果想访问光晕方法,此时必须添加/hello的路由:

现在进入了/hello的方法。 每个方法都对应于根,包括最后一次开机自检也一样。

这里还介绍了错误报告机制。

如果路由或访问数据错误,我们一般不能得到正确的结果。 此时,需要看到flask对错误的解释。

flask还为错误提供了名为@app.errorhandler ()的修饰符,括号中包含错误代码。 例如,如果找不到页面,可以这样写。 @app.errorhandler ) ) 404 )。

当然,还有其他错误,例如400、500、405。 我们都可以捕捉到:

ok,flask的介绍结束了。 我们接着上了轨道,在subprocess上写了python。 创建一个名为pyol.py的文件

首先导入要使用的软件包:

敲import os、sys、subprocess、tempfile、time ()代码时还是分开敲比较好。 虽然也支持连接起来写,但事实上是非规格的,所以建议分开写。 )

这里还需要临时文件夹。 运行python时使用此文件夹。

TempFile = tempfile.mkdtemp(suffix='_test', prefix='python_')

FileNum = int(time.time()*1000)

重要的是,必须使用sys模块中的executable方法获取python编译器的位置。 这是解密python代码所必需的。

EXEC=sys.executable

必须定义编码方法。

def decode(s):

try:

return s.decode('utf-8')

except UnicodeDecodeError:

return s.decode('gbk')

默认情况下全部用utf-8编码。

>下面我们需要将用户写进来的python代码写入文件:

def write_file(pyname, code):  

    fpath = os.path.join(TempFile, '%s.py' % pyname)  

    with open(fpath, 'w', encoding='utf-8') as f:  

        f.write(code)  

    print('file path: %s' % fpath)  

    return fpath 

下面我们需要在在一个主函数中定义执行方法,我们此时就需要用到subprocess 的check_output方法返回子进程的输出结果(check_output 是 父进程等待子进程完成,返回子进程向标准输出的输出结果  )

outdata = decode(subprocess.check_output([EXEC, fpath], stderr=subprocess.STDOUT, timeout=5)) 

将返回结果输出:

r['output'] = outdata 

最后退出程序并删除文件:

try:  

            os.remove(fpath)  

        except Exception as e: 

            exit(1)  

但是实际上这个临时文件本身也会自动删除,这步其实也算是多余的。这样我们的python就写好了。下面只需要把它加入路由,把用户输入的数据以post的方式提交即可。

我们在flaskrun.py文件里导入以下模块:

from flask import Flask  

from flask import request  

from flask import Response  

import json  

import pyol

我们需要定义一个返回的头部:

def Response_headers(content):  

    resp = Response(content)  

    resp.headers['Access-Control-Allow-Origin'] = '*'  

    return resp  

之后我们来写post请求的接口:

@app.route('/run',methods=['POST'])  

def run():  

    if request.method == 'POST' and request.form['code']:  

        code = request.form['code']  

        print(code)  

        jsondata = pyol.main(code)  

        return Response_headers(str(jsondata))  

我们指定他的路由为/run,采用post的方式传递数据,调用刚刚写的主函数的执行代码,来执行用户传入的code,最后将执行结果返回给用户。

最后我们运行代码:

if __name__ == '__main__':  

    app.run(host='0.0.0.0',port=1234,debug=True)  

最后完整加上优化后代码如下:

pyol.py

flaskrun.py

我们现在需要借助postman来看一下run的结果,首先我们先run一下代码

(flask run):

之后我们打开postman

瞬间就完成了。

之后我们只要写个前端,把这个接口给前端调就大功告成了!

python和c,怎么进入Python