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

目录

*
一、Mac搭建python开发环境

+ 1、更新Python版本到最新
二、配置VSCode

+ 1、安装VSCode Python插件
+ 2、写helloworld
+ 3、配置 Python 解释器
+ 4、Flash、Flask-SocketIO初探
+
* 1)什么是Flask?
* 2)Flash的简单Demo
* 3)什么是Flask-SocketIO?
* 4)Flask-SocketIO的简单Demo

一、Mac搭建python开发环境

Mac系统自带的Python版本为:Python 2.7.16,目录位于:/usr/bin/python

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

; 1、更新Python版本到最新

官网下载python安装包
https://www.python.org/downloads/
最新版为:Python 3.9.2,下载到本地后直接安装。

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

直接安装:

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

安装完后查看Python版本时,发现还是:Python 2.7.16

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

原因为:Python 3.9.2的默认安装目录为:/usr/local/bin/python3

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

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

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

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

source ~/.bash_profile生效后。

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

查看Python版本:

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

搞定。

二、配置VSCode

1、安装VSCode Python插件

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

; 2、写helloworld

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

3、配置 Python 解释器

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

点击状态栏左下角的 Python 图标进行配置,选择最新安装的版本。
shift+enter 运行:

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

; 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打开这个项目文件夹。

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

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

python3 -m venv env

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

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

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

选择刚才创建的虚拟环境env对应的Python版本。
选中后,左下角的效果:

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

安装或更新pip:

python -m pip install --upgrade pip

安装Flash:

python -m pip install flask

新建文件app.py

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

输入代码:

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

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

运行代码:

python -m flask run

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

浏览器打开URL:http://127.0.0.1:5000

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

成功。
参考:官方文档: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的目录结构:

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

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

Demo目录结构如下:

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

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的代码如下:


<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
运行结果如下图:

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

搞定。

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

PS:flask官方文档。

Original: https://blog.csdn.net/joinclear/article/details/115375071
Author: 技术经理老晶
Title: [Python]Mac+VSCode+Python之Flash、Flask-SocketIO初探

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/749068/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球