Python 之Web应用开发(Flask框架)
一 Python 简介
1.1 Python是继C++,java,C#等编程语言之后又一种面向对象的高级语言,凭借着简单的语法和和丰富的库,2015年开始迅速发展,到今天已成为排行前三的最受欢迎榜。
1.2 Python 应用领域非常广泛,经常用于以下领域:
- 数据分析与科学计算:使用库如 NumPy、Pandas 和 SciPy 进行数据处理和分析。
- 机器学习与人工智能:借助 TensorFlow、Keras 和 Scikit-learn 等库实现机器学习和深度学习模型。
- 网络开发:使用 Django、Flask 等框架构建网站和 Web 应用。
- 自动化与脚本编写:使用 Python 编写脚本以自动化日常任务,如文件处理、数据抓取等。
- 游戏开发:利用 Pygame 等库开发简单的 2D 游戏。
- 科学与数学计算:许多科学家和工程师使用 Python 进行模拟和计算。
- 图像处理:使用 OpenCV 和 PIL 等库处理和分析图像。
- 网络爬虫:利用 BeautifulSoup 和 Scrapy 等库抓取网页数据。
二 PyCharm 创建Flask项目
2.1 首先要安装Flask库
pip install Flask
查看是否安装成功
pip show Flask
2.2 pycharm新建Flask项目
创建第一个py文件
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world(): # put application's code here
return 'Hello World!'
if __name__ == '__main__':
app.run()
运行后控制台会显示出本地访问路径
点击链接会跳转浏览器,可以看到输出
Hello World!
2.3 代码解析
from flask import Flask: 这行代码从
flask
模块中导入了Flask
类。Flask
类是 Flask 框架的核心,用于创建 Flask 应用程序实例。app = Flask(__name__): 这行代码创建了一个 Flask 应用实例。
__name__
是一个特殊的 Python 变量,它在模块被直接运行时是'__main__'
,在被其他模块导入时是模块的名字。传递__name__
给Flask
构造函数允许 Flask 应用找到和加载配置文件。@app.route('/'): 这是一个装饰器,用于告诉 Flask 哪个 URL 应该触发下面的函数。在这个例子中,它指定了根 URL(即网站的主页)。
def hello_world():: 这是定义了一个名为
hello_world
的函数,它将被调用当用户访问根URL时。return 'Hello, World!': 这行代码是
hello_world
函数的返回值。当用户访问根 URL 时,这个字符串将被发送回用户的浏览器。if __name__ == '__main__'::这行代码是一个条件判断,用于检查这个模块是否被直接运行,而不是被其他模块导入。如果是直接运行,下面的代码块将被执行。
app.run(debug=True):这行代码调用 Flask 应用实例的
run
方法,启动 Flask 内置的开发服务器。debug=True
参数会启动调试模式,这意味着应用会在代码改变时自动重新加载,并且在发生错误时提供一个调试器。
2.4 Flask 基本概念
路由:路由是 URL 到 Python 函数的映射。Flask 允许你定义路由,这样当特定的 URL 被访问时,就会调用相应的函数。
视图函数:视图函数是处理请求并返回响应的 Python 函数。它们通常接收请求对象作为参数,并返回响应对象。
请求对象:请求对象包含了客户端发送的请求信息,如请求方法、URL、请求头、表单数据等。
响应对象:响应对象包含了发送给客户端的响应信息,如状态码、响应头、响应体等。
模板:Flask 使用 Jinja2 模板引擎来渲染 HTML 模板。模板允许你将 Python 代码嵌入到 HTML 中,从而动态生成网页。
应用工厂:应用工厂是一个 Python 函数,它创建并返回一个 Flask 应用实例。这允许你配置和初始化你的应用,并且可以创建多个应用实例。
配置对象:Flask 应用有一个配置对象,你可以使用它来设置各种配置选项,如数据库连接字符串、调试模式等。
蓝图:蓝图是 Flask 中的一个组织代码的方式,它允许你将相关的视图函数、模板和静态文件组织在一起,并且可以在多个应用中重用。
静态文件:静态文件是不会被服务器端执行的文件,如 CSS、JavaScript 和图片文件。Flask 提供了一个简单的方法来服务这些文件。
扩展:Flask 有许多扩展,可以添加额外的功能,如数据库集成、表单验证、用户认证等。
会话:Flask 使用客户端会话来存储用户信息,这允许你在用户浏览你的应用时记住他们的状态。
错误处理:Flask 允许你定义错误处理函数,当特定的错误发生时,这些函数会被调用。
三,Flask项目部署阿里云服务器
3.1 前提已经有阿里云ECS服务器实例,登录宝塔页面可以快速创建Flask项目
3.2 添加ECS安全组2221
3.3 配置域名访问,可以配置二级域名
3.4 打开外网映射
3.5 如果出现需要打开防火墙访问,那需要在终端开启2221端口的防火墙
输入以下指令:
firewall-cmd --zone=public --add-port=2221/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --query-port=2221/tcp
3.6 上传文件
我们把本地的Flask项目文件上传到ECS服务器,改下内容,返回常用json字符串结构
from flask import Flask
import json
app = Flask(__name__)
@app.route('/')
def hello_world(): # put application's code here
# Python 字典类型转换为 JSON 对象
data = {
'code': 200,
'msg': '请求成功',
'data': '123456789'
}
json_str = json.dumps(data)
return json_str
if __name__ == '__main__':
app.run()
把本地文件拖拽到这里就可以了
资源变动需要重启网站
浏览器输入[域名:端口]访问该python网站
四 注意点
4.1 要先下载安装python,目前最新版本是python3,最好用新版的,不然项目会出很多兼容性问题
4.2 pycharm 编辑器最好也配合python用最新的,不然Flask框架都下载不下来