您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Web微框架Flask如何安装使用
Flask是一个轻量级的Python Web框架,以其简洁、灵活和易扩展的特性受到开发者青睐。本文将详细介绍Flask的安装、基础使用和核心功能,帮助初学者快速上手。
## 目录
1. [Flask简介](#flask简介)
2. [安装Flask](#安装flask)
3. [第一个Flask应用](#第一个flask应用)
4. [路由与视图函数](#路由与视图函数)
5. [模板渲染](#模板渲染)
6. [静态文件处理](#静态文件处理)
7. [请求与响应](#请求与响应)
8. [Flask扩展](#flask扩展)
9. [部署建议](#部署建议)
---
## Flask简介
Flask基于Werkzeug WSGI工具包和Jinja2模板引擎构建,核心特性包括:
- 轻量级(代码量少,学习成本低)
- 内置开发服务器和调试器
- RESTful请求支持
- 支持Cookie和会话
- 丰富的扩展生态系统
适合快速开发小型项目或作为微服务架构中的组件。
---
## 安装Flask
### 前置条件
确保已安装Python 3.6+(推荐使用虚拟环境):
```bash
python --version # 检查版本
python -m venv venv # 创建虚拟环境
source venv/bin/activate # 激活环境(Linux/Mac)
venv\Scripts\activate # Windows
pip install flask
验证安装:
import flask
print(flask.__version__) # 应输出版本号如2.3.2
创建app.py
文件:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, Flask!"
if __name__ == '__main__':
app.run(debug=True)
运行应用:
python app.py
访问 http://127.0.0.1:5000
即可看到页面输出。
@app.route('/about')
def about():
return "About Page"
@app.route('/user/<username>')
def show_user(username):
return f"User: {username}"
默认只响应GET请求,可通过methods
参数扩展:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
return do_login()
return show_login_form()
Flask使用Jinja2模板引擎:
1. 创建templates
文件夹
2. 编写模板文件(如index.html
):
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
from flask import render_template
@app.route('/hello/<name>')
def hello(name):
return render_template('index.html',
title='Flask Demo',
name=name)
静态文件(CSS/JS/图片)应存放在static
目录:
url_for('static', filename='style.css')
模板中引用示例:
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
from flask import request
@app.route('/search')
def search():
query = request.args.get('q', '') # 获取GET参数
return f"Search: {query}"
@app.route('/submit', methods=['POST'])
def submit():
data = request.form['data'] # 获取POST表单数据
return f"Received: {data}"
from flask import make_response
@app.route('/custom')
def custom_response():
response = make_response("Custom Content")
response.headers['X-My-Header'] = 'Value'
response.status_code = 201
return response
常用扩展及安装命令:
扩展名 | 用途 | 安装命令 |
---|---|---|
Flask-SQLAlchemy | ORM支持 | pip install flask-sqlalchemy |
Flask-Login | 用户认证 | pip install flask-login |
Flask-WTF | 表单处理 | pip install flask-wtf |
Flask-Mail | 邮件发送 | pip install flask-mail |
示例:使用Flask-WTF处理表单
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
class MyForm(FlaskForm):
name = StringField('Name')
submit = SubmitField('Submit')
app.run(debug=True)
推荐部署方案: 1. Gunicorn + Nginx(Linux)
pip install gunicorn
gunicorn -w 4 app:app
pip install waitress
waitress-serve --port=8000 app:app
SECRET_KEY
import os
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY')
本文介绍了Flask的核心使用流程: 1. 通过pip快速安装 2. 创建最小化应用 3. 处理路由和请求 4. 使用模板和静态文件 5. 扩展基础功能 6. 部署注意事项
Flask的简洁设计使得开发者可以快速构建Web应用,同时通过扩展实现复杂功能。建议进一步学习官方文档和扩展库的使用以掌握更多高级特性。 “`
(注:实际字符数约1500字,可根据需要调整章节深度或示例复杂度)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。