Python Flask:Web 开发入门教程 – wiki基地

Python Flask:Web 开发入门教程

Flask 是一个轻量级的 Python Web 框架,以其简洁、灵活和易于扩展而闻名。本教程将引导你从零开始学习 Flask,逐步构建一个简单的 Web 应用程序,并深入探讨 Flask 的核心概念和高级功能。

一、安装和设置

首先,确保你的系统中安装了 Python。然后,使用 pip 安装 Flask:

bash
pip install Flask

创建一个名为 app.py 的文件,并编写最简单的 Flask 应用程序:

“`python
from flask import Flask

app = Flask(name)

@app.route(‘/’)
def hello_world():
return ‘Hello, World!’

if name == ‘main‘:
app.run(debug=True)
“`

在终端中运行 python app.py,访问 http://127.0.0.1:5000/,你将看到 “Hello, World!”。

二、路由和视图函数

@app.route('/') 是一个装饰器,它将 hello_world() 函数与 URL / 关联起来。当用户访问 / 时,Flask 会执行 hello_world() 函数并返回其结果。

你可以定义多个路由:

“`python
@app.route(‘/about’)
def about():
return ‘About page’

@app.route(‘/user/‘)
def user_profile(username):
return f’User: {username}’
“`

<username> 是一个动态参数,它会捕获 URL 中的值并传递给 user_profile() 函数。访问 http://127.0.0.1:5000/user/john 将显示 “User: john”。

三、模板

使用模板可以将 HTML、CSS 和 JavaScript 代码与 Python 代码分离,提高代码的可维护性。Flask 默认使用 Jinja2 模板引擎。

在项目根目录下创建一个名为 templates 的文件夹,并在其中创建一个名为 index.html 的文件:

“`html




My Website

Hello, {{ name }}!


“`

修改 app.py

“`python
from flask import Flask, render_template

app = Flask(name)

@app.route(‘/’)
def index():
return render_template(‘index.html’, name=’World’)
“`

render_template() 函数会渲染 index.html 模板,并将 name 变量的值传递给模板。

四、静态文件

静态文件(如 CSS、JavaScript 和图片)应该放在 static 文件夹中。在 templates/index.html 中添加一个 CSS 链接:

html
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">

url_for('static', filename='style.css') 会生成指向 static/style.css 的 URL。

五、请求和响应

Flask 提供了 request 对象来访问传入的请求数据,例如表单数据、查询参数和 Cookie。

“`python
from flask import Flask, request

@app.route(‘/login’, methods=[‘POST’])
def login():
username = request.form.get(‘username’)
password = request.form.get(‘password’)
# …
“`

response 对象用于构建响应。你可以设置响应状态码、Headers 和 Cookie。

“`python
from flask import Flask, make_response

@app.route(‘/cookie’)
def set_cookie():
response = make_response(‘Cookie set!’)
response.set_cookie(‘username’, ‘john’)
return response
“`

六、数据库

Flask 支持多种数据库,例如 SQLite、MySQL 和 PostgreSQL。可以使用 SQLAlchemy 或其他 ORM 库来简化数据库操作。

以 SQLAlchemy 为例:

“`python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(name)
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘sqlite:///test.db’
db = SQLAlchemy(app)

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
# …

db.create_all()
“`

七、表单处理

WTForms 是一个流行的 Flask 扩展,用于处理表单数据。

“`python
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired

class LoginForm(FlaskForm):
username = StringField(‘Username’, validators=[DataRequired()])
password = PasswordField(‘Password’, validators=[DataRequired()])
submit = SubmitField(‘Login’)
“`

八、用户认证

Flask-Login 提供了用户认证功能。

九、测试

使用 unittest 或 pytest 编写测试用例,确保代码的质量。

十、部署

你可以将 Flask 应用程序部署到各种平台,例如 Heroku、AWS 和 Google Cloud。

十一、高级主题

  • 蓝图:用于组织大型应用程序。
  • 扩展:提供额外的功能,例如邮件发送和缓存。
  • REST API:使用 Flask-RESTful 或 Marshmallow 构建 RESTful API。
  • WebSocket:使用 Flask-SocketIO 实现实时通信。

本教程涵盖了 Flask 的基本概念和常用功能,希望能帮助你入门 Web 开发。学习 Flask 的最佳方式是实践,尝试构建自己的 Web 应用程序,并不断探索新的功能。 记住,持续学习和实践是掌握任何技术的关键。 随着你深入学习,你将发现 Flask 的强大和灵活性,并能够构建更复杂的 Web 应用程序。 祝你学习愉快!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部