Flask实现Python在线编辑器(一)
Flask实现Python在线编辑器
导读
看到网上有一些
Python的在线运行编辑工具,一时来了兴趣,想要模仿一下,自己新建一个应用试一下.
前置知识
sys:负责程序与Python解释器的交互,提供了一系列的函数和变量,用于控制Python运行时的环境.
sys.argv接收命令行参数,生成一个List,第一个元素是程序本身路径 sys.exit(n)推出程序,正常退出 exit(0)sys.version获取Python解释程序的版本信息 sys.stdout标准输出 sys.stdin标准输入 sys.stderr标准错误 sys.executable执行的python路径 sys.platform返回操作系统平台名称
os:提供了非常丰富的方法来处理文件和目录
os.listdir(path)返回指定路径下的文件和文件夹列表。 os.open(file, flags[, mode]);用于打开一个文件
测试
在在线运行工具中输入以下内容:
#!/usr/bin/python
import sys
import os
print(sys.version_info)
print(sys.executable)
print(sys.path)
print(os.listdir(sys.path[0]))反馈信息:
sys.version_info(major=3, minor=8, micro=1, releaselevel='final', serial=0)
/usr/local/python-3.8.1/bin/python3
['/box', '/usr/local/python-3.8.1/lib/python38.zip', '/usr/local/python-3.8.1/lib/python3.8', '/usr/local/python-3.8.1/lib/python3.8/lib-dynload', '/usr/local/python-3.8.1/lib/python3.8/site-packages']
['script.py', 'run']可以看到有一个
script.py文件生成出来,猜测应该是把填入的内容POST写入到一个文件中,然后运行文件,返回结果,测试如下:#!/usr/bin/python
import sys
import os
print(sys.version_info)
print(sys.executable)
print(sys.path)
print(os.listdir(sys.path[0]))
with open("/box/script.py") as e:
print(e.read())反馈
sys.version_info(major=3, minor=8, micro=1, releaselevel='final', serial=0)
/usr/local/python-3.8.1/bin/python3
['/box', '/usr/local/python-3.8.1/lib/python38.zip', '/usr/local/python-3.8.1/lib/python3.8', '/usr/local/python-3.8.1/lib/python3.8/lib-dynload', '/usr/local/python-3.8.1/lib/python3.8/site-packages']
['script.py', 'run']
#!/usr/bin/python
import sys
import os
print(sys.version_info)
print(sys.executable)
print(sys.path)
print(os.listdir(sys.path[0]))
with open("/box/script.py") as e:
print(e.read())
服务器创建
正好手里有一台云服务器,系统是
Ubuntu server 18,所以用它来做一个测试环境.
安装
anaconda我比较习惯于使用anaconda的包管理环境,如果你使用
virtualenv也可以.1.在Web浏览器中,转到Anaconda下载页面
2.下载
Bash脚本(由于我的是小水管,下载特别慢,今天就先到这里,估计明天就下载完了)$ curl -O https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
1 521M 1 8991k 0 0 14517 0 10:27:53 0:10:34 10:17:19 3148
