Flask入门-创建应用

简介和创建

简介

Flask是一个使用Python编写的轻量级Web应用框架。它基于Werkzeug WSGI工具包和Jinja2模板引擎,旨在提供一个简单而灵活的核心,让开发者能够快速构建各类Web应用。Flask不会对特定的数据库、表单验证或任何其他功能做强制要求,而是提供了可自由选择的扩展支持,这使得开发者能够根据项目需求,高度自定义应用结构和功能。

Flask 特点

  1. 1. 微框架:Flask本身只保持最小的核心功能,如请求-响应周期处理、路由和模板渲染,非常适合小型项目或作为API服务器。

  2. 2. 灵活性高:由于其轻量和模块化设计,Flask允许开发者根据需要选择适合项目的库和工具,而不是预设一切。

  3. 3. 易学易用:对于初学者来说,Flask的学习曲线相对较低,是开始学习Web开发的一个很好的选择。

  4. 4. 强大的扩展系统:虽然Flask核心简单,但通过其丰富的扩展库,可以轻松添加如数据库集成(SQLAlchemy)、表单处理(WTForms)、用户认证(Flask-Login)等复杂功能。

  5. 5. 适用于快速原型开发:由于其轻便性,Flask特别适合快速创建项目原型或进行MVP(最小可行性产品)开发。

创建虚拟环境

  • • 先打开cmd

Windows+R输入cmd或powershell

  • • 安装virtualenv(windows操作系统)

pip install virtualenv virtualenvwrapper-win
  • • workon查看虚拟环境

workon
  • • mkvirtualenv创建新的虚拟环境

mkvirtualenv 项目名称
  • • rmvirtualenv删除虚拟环境

rmvirtualenv 项目名称
  • • 进入虚拟环境

workon 项目名称
  • • PyCharm专业版也可创建

创建第一个Flask应用

创建Flask应用后,会有三个statictemplatesapp.py

  • • static:这个目录用于存放所有的静态文件,比如 CSS、JavaScript、图像等。

  • • templates:存放应用的模板文件,通常是 HTML 文件,但也可以是 Jinja2 模板引擎支持的其他格式。

  • • app.py:这是 Flask 应用的主要入口文件。

Hello World

app.py

# 导入 Flask 类,这是构建 Flask 应用程序的基础
from flask import Flask

# 创建 Flask 应用实例,__name__ 作为参数传入,用于定位资源文件(如模板和静态文件)
app = Flask(__name__)

# 使用 @app.route 装饰器定义路由,此处 '/' 表示应用的根 URL
@app.route('/')
# 定义一个名为 hello_world 的视图函数,当访问应用根 URL 时被调用
def hello_world():  # put application's code here
    # 函数返回简单的字符串 "Hello World!" 作为响应内容
    return 'Hello World!'

# 检查是否直接运行此脚本(而非作为模块导入),如果是,则启动 Flask 开发服务器
if __name__ == '__main__':
    # 调用 app.run() 方法启动 Web 服务器,默认会在本地的 5000 端口运行
    app.run()

Flask入门-创建应用

run启动参数详解

在 Flask 中,app.run() 方法用于启动开发服务器,默认情况下,它会快速启动一个服务器供开发和测试使用。app.run() 方法接受多个参数来定制服务器的行为,以下是一些常用的参数及其说明:

  1. 1. host (string):指定服务器监听的 IP 地址。默认值是 '127.0.0.1',这意味着服务器只接受来自本地的连接请求。若要让服务器公开可由外部访问,可以设置为 '0.0.0.0'

  2. 2. port (int):指定服务器监听的端口号。默认值是 5000。可以根据需要更改端口,例如,如果默认端口已被占用,可以设置为 8000

  3. 3. debug (bool):开启或关闭调试模式。默认是 False。如果设置为 True,服务器将在代码修改后自动重载,并在遇到错误时提供详细的堆栈跟踪信息,这对于开发阶段非常有用,但出于安全考虑,生产环境中应设为 False

  4. 4. use_reloader (bool):默认为 True,当 debug=True 时,自动重启服务器以便于代码更改生效。如果在某些复杂环境下(比如使用了多进程或多线程),可能需要关闭重载器,设为 False

  5. 5. threaded (bool):是否使用多线程模式。默认是 False,意味着服务器在接收到请求时会阻塞直到处理完该请求。设置为 True 允许服务器同时处理多个请求,这对于并发请求处理很有帮助。

  6. 6. ssl_context (None 或 tuple):如果需要使用 HTTPS,可以通过这个参数指定 SSL/TLS 上下文。通常是一个包含证书和私钥文件路径的元组,如 ('cert.pem', 'key.pem')

示例代码,展示如何使用这些参数:

if __name__ == '__main__':
    app.run(
        host='0.0.0.0',  # 允许外部访问
        port=8000,       # 更改默认端口为8000
        debug=True,      # 开启调试模式
        threaded=True,   # 启用多线程
        use_reloader=False  # 假设在某种特殊环境下,关闭自动重载
    )

通过调整这些参数,你可以根据实际需求定制 Flask 开发服务器的行为。但需要注意的是,app.run() 用于开发环境,对于生产部署,推荐使用更强大的 WSGI 服务器,如 Gunicorn 或 uWSGI,配合 Nginx 等反向代理服务器,以提高性能和安全性。

原文始发于微信公众号(索隆程序员):Flask入门-创建应用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/288905.html

(0)
土豆大侠的头像土豆大侠

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!