[Python]Mac+VSCode+Python之Flash、Flask-SocketIO初探

一、Mac搭建python开发环境

Mac系统自带的Python版本为:Python 2.7.16,目录位于:/usr/bin/python
在这里插入图片描述

1、更新Python版本到最新

官网下载python安装包
https://www.python.org/downloads/
最新版为:Python 3.9.2,下载到本地后直接安装。
在这里插入图片描述

直接安装:
在这里插入图片描述

安装完后查看Python版本时,发现还是:Python 2.7.16
在这里插入图片描述

原因为:Python 3.9.2的默认安装目录为:/usr/local/bin/python3
在这里插入图片描述

可以通过修改/Users/lijing/.bash_profile文件生效(PS:由于后续通过VSCode虚拟环境开发,这个地方也可以不修改)。
修改方法如下:
在.bash_profile文件最后添加:

alias python="/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9"

在这里插入图片描述

source ~/.bash_profile生效后。
在这里插入图片描述

查看Python版本:
在这里插入图片描述

搞定。

二、配置VSCode

1、安装VSCode Python插件

在这里插入图片描述

2、写helloworld

新建个文件夹:phello,在里面新建个文件:hello.py
输入代码:print(‘Hello, world!’)

3、配置 Python 解释器

在这里插入图片描述

点击状态栏左下角的 Python 图标进行配置,选择最新安装的版本。
shift+enter 运行:
在这里插入图片描述

4、Flash、Flask-SocketIO初探

1)什么是Flask?

Flask是一个使用 Python 编写的轻量级Web应用框架。(https://github.com/pallets/flask
安装 Flask 最便捷的方式是使用虚拟环境。
虚拟环境是Python解释器的一个私有副本,在这个环境中你可以安装私有包,这些包不会影响系统中安装的全局Python解释器。(PS:虚拟环境可以避免系统中的Python包的混乱和版本的冲突。)

2)Flash的简单Demo

先创建一个项目文件夹,如:hello_flask。
使用VSCode打开这个项目文件夹。
在这里插入图片描述

打开终端,创建虚拟环境:

python3 -m venv env

在这里插入图片描述

选择Python解释器
打开查看/命令面板(View > Command Palette),选择解释器。

在这里插入图片描述在这里插入图片描述

选择刚才创建的虚拟环境env对应的Python版本。
选中后,左下角的效果:
在这里插入图片描述

安装或更新pip:

python -m pip install --upgrade pip

安装Flash:

python -m pip install flask

新建文件app.py
在这里插入图片描述

输入代码:

from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Hello, Flask!"

在这里插入图片描述

运行代码:

python -m flask run

在这里插入图片描述

浏览器打开URL:http://127.0.0.1:5000
在这里插入图片描述

成功。
参考:官方文档:tutorial-flask

3)什么是Flask-SocketIO?

Flask-SocketIO是Flask对WebSocket支持的封装库,能比较方便地实现数据的实时显示。(https://github.com/miguelgrinberg/Flask-SocketIO
安装Flask-SocketIO:

python -m pip install flask-socketio
4)Flask-SocketIO的简单Demo

参考别人的例子,简单写个每5秒从1到100里面随机生成一个数字显示在页面的Demo。
首先,看下Flask的目录结构:
在这里插入图片描述

html文件放templates文件夹。
静态文件放static文件夹。
.py文件放最外面或新建个views文件夹放入。

Demo目录结构如下:
在这里插入图片描述

app.py代码如下:

from flask import Flask, render_template
from flask_socketio import SocketIO,emit
from threading import Lock
import random
async_mode = None
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
thread = None
thread_lock = Lock()
 
@app.route('/')
def index():
return render_template('index.html')
 
@socketio.on('connect', namespace='/test_conn')
def test_connect():
global thread
with thread_lock:
if thread is None:
thread = socketio.start_background_task(target=background_thread)
 
def background_thread():
while True:
socketio.sleep(5)
t = random.randint(1, 100)
socketio.emit('server_response',
{'data': t},namespace='/test_conn')
 
if __name__ == '__main__':
socketio.run(app, debug=True)

index.html的代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="/static/jquery.js"></script>
<script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/socket.io/4.0.0/socket.io.min.js"></script>
</head>
<body>
<h1 id="t"></h1>
<script type="text/javascript">
$(document).ready(function() {
namespace = '/test_conn';
var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port + namespace);
socket.on('server_response', function(res) {
console.log(res.data);
$('#t').text(res.data);
});
});
</script>
</body>
</html>

运行代码:

python -m flask run

浏览器打开URL:http://127.0.0.1:5000
运行结果如下图:
在这里插入图片描述

搞定。

代码如下:Mac+VSCode+Python之Flash初探DEMO源码。

PS:flask官方文档。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

joinclear

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值