乐趣区

关于人工智能:92-Flask框架

Flask 是一个轻量级的 Python Web 开发框架,它易于上手,适宜构建小型到中型的 Web 利用。在这一章节中,咱们将具体介绍 Flask 的基本概念、组件和用法。为了便于了解,咱们将应用实例来展现如何应用 Flask 构建一个简略的 Web 利用。

9.2.1 装置和创立 Flask 利用

首先,应用 pip 装置 Flask:

pip install flask

接下来,创立一个名为 app.py 的文件,输出以下代码:

from flask import Flask

app = Flask(__name__)

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

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

这个简略的程序创立了一个 Flask 利用,并定义了一个根路由(/),该路由将返回 “Hello, World!”。运行 app.py

python app.py

关上浏览器,拜访 http://127.0.0.1:5000/,你将看到 “Hello, World!”。

9.2.2 路由和视图函数

在 Flask 中,路由是 URL 到 Python 函数的映射。视图函数是解决特定路由的申请的函数。以下是一个带有两个路由的示例:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'This is the index page.'

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

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

这个例子中,咱们定义了两个路由:/ 和 /hello。拜访对应的 URL 时,将显示相应的视图函数返回的内容。

路由变量

你能够在路由中应用 <variable> 的模式定义变量,这样能够将 URL 的一部分作为参数传递给视图函数。例如:

@app.route('/user/<username>')
def show_user_profile(username):
    return f'User: {username}'

在这个例子中,拜访 /user/<username>(如 /user/john)将显示 “User: john”。

9.2.3 申请和响应

Flask 提供了 request 对象,用于拜访申请数据,如表单、查问参数、文件等。以下是一个解决表单提交的示例:

from flask import Flask, request

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return f'Welcome, {request.form["username"]}'
    else:
        return '''<form method="post">
                <p>Username: <input type="text" name="username"></p>
                <p>Password: <input type="password" name="password"></p>
                <p><input type="submit" value="Login"></p>
            </form>
        '''if __name__ =='__main__':
    app.run()

在这个例子中,咱们定义了一个 /login 路由,该路由承受 GET 和 POST 申请。当用户拜访 /login 时,将显示一个登录表单。填写表单并提交后,将显示”Welcome, username“。

9.2.4 模板

Flask 应用 Jinja2 模板引擎来生成动静 HTML。首先,创立一个名为 templates 的文件夹,而后在其中创立一个名为 login.html 的文件,内容如下:

<form method="post">
    <p>Username: <input type="text" name="username"></p>
    <p>Password: <input type="password" name="password"></p>
    <p><input type="submit" value="Login"></p>
</form>

批改 app.py,应用 render_template 函数渲染模板:

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return f'Welcome, {request.form["username"]}'
    else:
        return render_template('login.html')

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

当初,当用户拜访 /login 时,将应用 login.html 模板渲染页面。

9.2.5 动态文件

通常,Web 利用须要提供一些动态文件,如 CSS、JavaScript 和图像文件。在 Flask 中,将这些文件放在名为 static 的文件夹中。例如,创立一个名为 main.css 的 CSS 文件,将其放在 static/css 文件夹中。

在模板中,应用 url_for 函数生成动态文件的 URL。批改 login.html,增加一个链接到 main.css 的样式表:

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
    <link rel="stylesheet" href="{{url_for('static', filename='css/main.css') }}">
</head>
<body>
    <form method="post">
        <p>Username: <input type="text" name="username"></p>
        <p>Password: <input type="password" name="password"></p>
        <p><input type="submit" value="Login"></p>
    </form>
</body>
</html>

9.2.6 错误处理

Flask 容许你为特定的 HTTP 错误代码定义自定义谬误处理程序。这对于显示敌对的谬误页面十分有用。例如,上面是一个解决 404(未找到)谬误的示例:

from flask import Flask, render_template

app = Flask(__name__)

@app.errorhandler(404)
def page_not_found(error):
    return render_template('404.html'), 404

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

在这个例子中,咱们定义了一个名为 page_not_found 的谬误处理程序,用于解决 404 谬误。当用户拜访不存在的页面时,将显示一个自定义的 404 页面。

小结

这一章节介绍了 Flask 的基本概念和用法,包含路由、申请、响应、模板和动态文件。通过这些概念,你能够应用 Flask 构建一个根本的 Web 利用。当然,Flask 还有许多其余性能,如蓝图(用于组织大型利用)、扩大(用于增加额定性能)以及对数据库的反对等。这里只是为你提供了一个入门,要深刻理解 Flask,倡议浏览官网文档和其余教程。

祝你学习欢快!
举荐浏览:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

退出移动版