-
項目構想與準備
-
搭建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新建虛擬環境。



新建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 subprocessdef compiler():content = request.datawith 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

代碼地址:git@gitee.com:amyliyanice/c-editor-online.git
牛牛IT充電站
日常分享熱門、有趣和實用的編程技術與編程案例,包括:嵌入式、物聯網、小程序、python、C/C++、JS、CSS、Nodejs、PHP等。
審核編輯 :李倩
-
C語言
+關注
關注
183文章
7644瀏覽量
145600 -
編譯器
+關注
關注
1文章
1672瀏覽量
51614 -
python
+關注
關注
57文章
4876瀏覽量
90035
原文標題:利用python實現C語言在線編譯器
文章出處:【微信號:嵌入式開發愛好者,微信公眾號:嵌入式開發愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
單片機開發功能安全中編譯器
開源鴻蒙技術大會2025丨編譯器與編程語言分論壇:語言驅動系統創新,編譯賦能生態繁榮
C語言和單片機C語言有什么差異
飛凌嵌入式ElfBoard-Vim編輯器之GCC編譯器的安裝
GCC編譯器,怎么才能實現c文件中未被調用的函數,不會被編譯呢?
C++ 與 Python:樹莓派上哪種語言更優?
進迭時空同構融合RISC-V AI CPU的Triton算子編譯器實踐
利用python制作C語言在線編譯器的小案例
評論