首页 > 编程语言 >Flask框架入门:快速搭建轻量级Python网页应用

Flask框架入门:快速搭建轻量级Python网页应用

时间:2024-07-31 11:28:17浏览次数:17  
标签:__ name 示例 Flask app Python route 轻量级

转载: Flask框架入门:快速搭建轻量级Python网页应用

1. Flask基础

Flask是一个使用Python编写的轻量级Web应用框架。它的设计目标是让Web开发变得快速简单,同时保持应用的灵活性。Flask依赖于两个外部库:Werkzeug和Jinja2,Werkzeug作为WSGI工具包处理Web服务的底层细节,Jinja2作为模板引擎渲染模板。

安装Flask非常简单,可以使用pip安装命令:

pip install Flask

以下是一个简单的Flask应用示例:

from flask import Flask

app = Flask(__name__)

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

if __name__ == '__main__':
    app.run(debug=True)

在这个示例中,app = Flask(__name__)创建了一个Flask应用实例。@app.route('/')定义了一个路由,即应用的根地址,当访问这个地址时,会执行紧随其后的函数并返回结果。app.run(debug=True)使应用运行在调试模式下,方便开发和测试。

2. 路由和视图

路由是指将客户端请求映射到应用处理程序的机制。在Flask中,路由使用app.route装饰器定义。视图是处理请求并返回响应的函数。

以下示例展示了如何定义不同的路由和视图:

@app.route('/user/<username>')
def show_user_profile(username):
    # 显示用户的名称
    return f'User {username}'

@app.route('/post/<int:post_id>')
def show_post(post_id):
    # 显示帖子的ID,ID是整数
    return f'Post {post_id}'

在这个示例中,<username><int:post_id>是动态部分,任何符合相应路径格式的URL都会被映射到对应的视图函数上,并将动态部分作为参数传递给该函数。

3. 模板使用

Flask使用Jinja2模板引擎渲染模板。这使得动态内容的生成变得简单而强大。模板文件通常保存在应用的templates文件夹中。

from flask import render_template

@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html', name=name)

模板hello.html如下所示:

<!doctype html>
<title>Hello from Flask</title>
{% if name %}
  <h1>Hello {{ name }}!</h1>
{% else %}
  <h1>Hello, World!</h1>
{% endif %}

4. 表单处理

Flask通过request对象来处理客户端发送的数据。以下示例展示了如何处理一个简单的表单提交:

from flask import request

@app.route('/login', methods=['GET', 'POST'])
def login():
    error = None
    if request.method == 'POST':
        if valid_login(request.form['username'], request.form['password']):
            return log_the_user_in(request.form['username'])
        else:
            error = 'Invalid username/password'
    # 如果请求方法为GET或认证失败,则显示登录表单
    return render_template('login.html', error=error)

5. 数据库操作

Flask自身不包含数据库操作功能,但它提供了轻松集成第三方库的能力,比如Flask-SQLAlchemy。Flask-SQLAlchemy提供了一个高层次的ORM和对底层数据库的支持。

以下是使用Flask-SQLAlchemy的一个简单示例:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///yourdatabase.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

)

    def __repr__(self):
        return '<User %r>' % self.username

在这个示例中,定义了一个User模型,它映射到数据库中的一个表,用于存储用户信息。

总结

Flask框架为Python Web开发提供了一个轻量级而强大的解决方案。通过简介的介绍,我们探索了Flask的基础知识、路由与视图的设置、模板的使用、表单处理,以及如何进行数据库操作。Flask的设计哲学是保持核心简单但扩展强大,这使得开发者可以轻松构建出适应各种需求的Web应用。

标签:__,name,示例,Flask,app,Python,route,轻量级
From: https://blog.csdn.net/Richardlygo/article/details/140685133

相关文章

  • 五分钟,用flask做一个简单的交互页面
    Python作为一个万能且简单的编程语言,其在各个领域都有着很好的表现。其中在Web领域,也有大名鼎鼎的Django和Flask,今天我们就通过Flask,用五分钟写一个简单的交互页面!基本功能1、安装Flask在命令行中输入pipinstallflask即可安装Flask。2、创建Flask应用在P......
  • 我有一个“pywhatkit”python 模块属性错误。你能帮我吗?
    Pywhatkit已成功安装,但在任何属性代码中都显示属性错误。我可以修复它吗?我尝试过的代码:importpywhatkitpywhatkit.sendmsg('071*******','Ado',15,48)我如何修复这个问题:我将程序文件名“pywhatkit.py”重命名为“anotername.py”。谢谢所有帮......
  • 如何使用Python获取Excel文件中嵌入图像的位置?
    我正在使用包含嵌入图像的Excel文件(.xlsx)。我需要使用Python以编程方式提取这些图像的位置(单元格引用)。这是我到目前为止所尝试过的:任何建议将不胜感激。使用openpyxl和openpyxl-image-loader:我没有处理嵌入图像。解压缩Excel文件并检查内容:......
  • cmd输入python直接弹出windows应用商店
    明明已经安装好了python,并且也确认配置好了python的环境变量,但是在cmd里输入python后,直接弹出windows商店,python获取界面,其实只需要关闭系统里的应用执行别名设置,最近出来的电脑系统里是自带开启了python相关的执行别名。步骤是【设置】-【应用】-【高级应用设计】-【应用执行名称......
  • Python 数学问题:(2**3+(5+6)**(1+1)) =?
    (2**3+(5+6)**(1+1))=?如果您能提供一步一步的解决方案,我将不胜感激。计算机向我展示了答案,但我只是不知道它是如何得出的。所以,如果可以的话,让我知道就太好了。我已经被“**”部分困住了,而且也对“3”的用途感到困惑。我尝试了这个问题,得到了131,但这不是答案。让我......
  • flask 框架日志
       除了自定义配置的log日志外,flask框架的有自己的日志处理机制,使用它的好处就是出现异常,即使没有捕获也能打印到日志里,方便定位问题。importsysfromlogging.handlersimportTimedRotatingFileHandlerfromloggingimportStreamHandlerfromloggingimportFormatter......
  • Python - Generators
    Thetaskofimplementingiteratorscanbesimplifiedbyusinggenerators.Wehaveseenhowtocreatecustomiteratorsusingtheobject-orientedway,i.e.,bydefiningaclassthathas__init__,__next__,and__iter__methods.Forexample,wesawtheCubes......
  • Python应用—加密、解密文件
    1.创作需求日常生活中我们有很多文件想要保密。这个脚本可以方便大家对所有的文件类型进行加密,解密。最大程度保护我们的隐私。2.话不多说,直接上代码fromcryptography.fernetimportFernetimportdocx#加密defencrypt_file(filename):#生成密钥key=Fer......
  • 三种语言实现二维前缀和(C++/Python/Java)
    题目输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1,y1,x2,y2表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数n,m,q接下来n行,每行包含m个整数,表示整数矩阵。接下来q行,每行包含四个整数......
  • Python rocketMq 客户端的同步和异步模式
    同步模式fromrocketmq.clientimportPushConsumer,ConsumeStatusimporttimedefcallback(msg):print(msg.id,msg.body,msg.get_property('property'))returnConsumeStatus.CONSUME_SUCCESSdefstart_consume_message():consumer=PushCon......