-
项目构想与准备
-
搭建python服务器
-
前端页面
-
后台逻辑实现
一、项目构想与准备
目标:使用python+codeMirror制作一款类似菜鸟教程的在线编译器。
1.1项目架构
1.2 开发环境
windows系统
python 3.7.1
mingw-get-setup
1.3技术栈
bootstrap构建前端页面
codeMirror代码编辑器插件
flask框架搭建后端服务器
1.4 环境准备
安装mingw-get-setup,下载地址:
https://sourceforge.net/projects/mingw/
安装成功后安装gcc,具体操作参考:
https://www.cnblogs.com/liangliangge/p/14737419.html
确保能在windows下运行gcc命令。
二、搭建python服务器
2.1新建项目
使用python自带的venv新建虚拟环境。
安装命令:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask
新建server.py,书写如下代码:
运行命令,flask run开启服务。
访问:http://127.0.0.1:5000
到此,服务端先告一段落。
三、前端逻辑与代码实现
3.1项目中引入bootstrap
在bootstrap官网中下载bootstrap3.4.1,并将代码包放在项目目录下。
3.2在pages下新建index.html页面引入bootstrap.
3.3使用bootstrap构建前端页面
3.4添加codeMirror代码编辑器
下载地址:https://codemirror.net/5/
添加到项目中
页面引入
注意引入的顺序
修改页面静态资源路径
3.6 获取代码发送服务端
点击run按钮获取代码
渲染获取结果
四、服务端处理代码
import subprocess
def compiler():
content = request.data
with open("./test.c",'w',encoding='utf-8') as f:
f.write(str(content,'utf-8'))
cmd_order = 'gcc test.c -o test.out && test.out'
cmd_p = subprocess.Popen(cmd_order, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
cmd_result = ""
for i in cmd_p.stdout.readlines():
cmd_result += i.decode()
return cmd_result
代码地址:[email protected]:amyliyanice/c-editor-online.git
牛牛IT充电站
日常分享热门、有趣和实用的编程技术与编程案例,包括:嵌入式、物联网、小程序、python、C/C++、JS、CSS、Nodejs、PHP等。
审核编辑 :李倩
-
C语言
+关注
关注
181文章
7633浏览量
142792 -
编译器
+关注
关注
1文章
1664浏览量
50541 -
python
+关注
关注
56文章
4838浏览量
87977
原文标题:利用python实现C语言在线编译器
文章出处:【微信号:嵌入式开发爱好者,微信公众号:嵌入式开发爱好者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
Triton编译器与GPU编程的结合应用
Triton编译器如何提升编程效率
Triton编译器在高性能计算中的应用
Triton编译器的优化技巧
Triton编译器在机器学习中的应用
Triton编译器的常见问题解决方案
Triton编译器与其他编译器的比较
Triton编译器功能介绍 Triton编译器使用教程
HighTec C/C++编译器支持Andes晶心科技RISC-V IP
TMS320C28x优化C/C++编译器v22.6.0.LTS

评论