怎样利用 Flask 框架创建简单的 Web 应用?

[复制链接]
发表于 2025-11-19 05:59:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Flask是一个轻量级的Web应用框架,用Python编写,非常适当快速开发和原型操持。
它提供了须要的工具和技能来构建一个Web应用,同时保持焦点简单,不欺压利用特定的工具或库。
二、创建第一个Flask应用


  • 安装Flask
起首,你必要安装Flask。你可以利用pip来安装:
  1. pip install Flask
复制代码

  • 编写一个简单的Flask应用
创建一个名为app.py的文件,并添加以下代码:
  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route('/')
  4. def hello_world():
  5.     return 'Hello, World!'
  6. if __name__ == '__main__':
  7.     app.run(debug=True)
复制代码
这段代码做了以下几件事:

  • 导入Flask类。
  • 创建一个Flask web服务器的实例app。
  • 利用@app.route装饰器界说路由和对应的处理处罚函数。在这里,我们界说了根URL('/')的处理处罚函数为hello_world。
  • 在hello_world函数中,返回了一个字符串'Hello, World!'。
  • 末了,通过app.run()启动web服务器,并设置debug=True以便在开发过程中得到调试信息。

  • 运行应用
在下令行中运行app.py:
  1. python app.py
复制代码
然后打开欣赏器,访问http://127.0.0.1:5000/,你应该能看到"Hello, World!"的输出。
三、一样寻常开发中的公道化利用发起


  • 利用蓝图举行模块化
当你的应用变得复杂时,可以利用蓝图(Blueprints)来举行模块化。蓝图允许你将应用分割成更小的、可重用的组件。
比方,你可以创建一个名为users.py的蓝图文件:
  1. from flask import Blueprint
  2. users = Blueprint('users', __name__)
  3. @users.route('/users')
  4. def users_route():
  5.     return 'Users route'
复制代码
然后在主应用文件中注册这个蓝图:
  1. from flask import Flask
  2. from users import users
  3. app = Flask(__name__)
  4. app.register_blueprint(users)
  5. # ... 其他路由和配置 ...
复制代码

  • 利用模板引擎
Flask默认利用Jinja2作为模板引擎。你可以利用它来渲染HTML页面。
起首,在应用目次下创建一个templates文件夹,并在此中添加一个HTML文件,比方index.html:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Home Page</title>
  5. </head>
  6. <body>
  7.     <h1>Welcome to the Home Page!</h1>
  8. </body>
  9. </html>
复制代码
然后在Flask应用中渲染这个模板:
  1. from flask import Flask, render_template
  2. app = Flask(__name__)
  3. @app.route('/')
  4. def home():
  5.     return render_template('index.html')
  6. # ... 其他路由和配置 ...
复制代码

  • 利用表单
Flask-WTF是一个盛行的扩展,用于处理处罚Web表单。它集成了WTForms,并提供了CSRF掩护等功能。
起首安装Flask-WTF:
  1. pip install Flask-WTF
复制代码
然后创建一个表单类:
  1. from flask_wtf import FlaskForm
  2. from wtforms import StringField, SubmitField
  3. from wtforms.validators import DataRequired
  4. class MyForm(FlaskForm):
  5.     name = StringField('Name', validators=[DataRequired()])
  6.     submit = SubmitField('Submit')
复制代码
在视图中利用这个表单:
  1. from flask import Flask, render_template
  2. from my_form import MyForm
  3. app = Flask(__name__)
  4. app.config['SECRET_KEY'] = 'your_secret_key'
  5. @app.route('/', methods=['GET', 'POST'])
  6. def home():
  7.     form = MyForm()
  8.     if form.validate_on_submit():
  9.         # 处理表单数据
  10.         return 'Form submitted!'
  11.     return render_template('form.html', form=form)
  12. # ... 其他路由和配置 ...
复制代码
Flask-SQLAlchemy是一个盛行的ORM(对象关系映射)库,用于与数据库交互。
起首安装Flask-SQLAlchemy:
  1. pip install Flask-SQLAlchemy
复制代码
然后设置数据库并界说模子:
  1. from flask import Flask
  2. from flask_sqlalchemy import SQLAlchemy
  3. app = Flask(__name__)
  4. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_database.db'
  5. db = SQLAlchemy(app)
  6. class User(db.Model):
  7.     id = db.Column(db.Integer, primary_key=True)
  8.     name = db.Column(db.String(80), nullable=False)
  9. # ... 其他路由和配置 ...
复制代码
四、现实开发过程中必要留意的点



  • 始终利用HTTPS来掩护数据传输。
  • 利用Flask-Security或雷同扩展来处理处罚用户认证和授权。
  • 克制SQL注入攻击,利用ORM或参数化查询。
  • 利用CSRF掩护来防止跨站哀求伪造攻击。


  • 利用缓存来镌汰数据库查询次数。
  • 利用Gunicorn或uWSGI等WSGI服务器来摆设应用,以进步性能。
  • 利用负载平衡和反向署理来扩展应用。

  • 代码布局和可维护性


  • 利用蓝图举行模块化,保持代码布局清晰。
  • 编写单位测试和集成测试,确保代码质量。
  • 利用版本控制体系(如Git)来管理代码。

  • 错误处理处罚和日志日志纪录


  • 利用Flask的错误处理处罚机制来捕获和处理处罚非常。
  • 利用Python的logging模块来纪录日志日志,以便于调试和监控监控。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表