📜  Flask –(创建第一个简单的应用程序)

📅  最后修改于: 2022-05-13 01:54:19.953000             🧑  作者: Mango

Flask –(创建第一个简单的应用程序)

使用Python构建网页。

有许多模块或框架允许使用Python构建您的网页,如瓶子、Django、flask 等。但真正流行的是 Flask 和 Django。与 Flask 相比,Django 易于使用,但 Flask 为您提供了编程的多功能性。
要了解 Flask 是什么,您必须了解一些通用术语。

  1. WSGI Web 服务器网关接口 (WSGI) 已被采用作为Python Web 应用程序开发的标准。 WSGI 是 Web 服务器和 Web 应用程序之间通用接口的规范。
  2. Werkzeug是一个 WSGI 工具包,它实现了请求、响应对象和其他实用功能。这使得在它之上构建一个 Web 框架成为可能。 Flask 框架使用 Werkzeug 作为其基础之一。
  3. jinja2 jinja2 是一个流行的Python模板引擎。网页模板系统将模板与特定数据源相结合以呈现动态网页。

烧瓶

Flask 是一个用Python编写的 Web 应用程序框架。 Flask 基于 Werkzeug WSGI 工具包和 Jinja2 模板引擎。两者都是 Pocco 项目。

安装:

我们将需要两个包来设置您的环境。 virtualenv供用户并排创建多个Python环境。因此,它可以避免不同版本库之间的兼容性问题,下一个将是Flask本身。

  • 虚拟环境
pip install virtualenv
  • 烧瓶
pip install Flask

完成包的安装后,让我们动手编写代码。

Python3
# Importing flask module in the project is mandatory
# An object of Flask class is our WSGI application.
from flask import Flask
  
# Flask constructor takes the name of 
# current module (__name__) as argument.
app = Flask(__name__)
  
# The route() function of the Flask class is a decorator, 
# which tells the application which URL should call 
# the associated function.
@app.route('/')
# ‘/’ URL is bound with hello_world() function.
def hello_world():
    return 'Hello World'
  
# main driver function
if __name__ == '__main__':
  
    # run() method of Flask class runs the application 
    # on the local development server.
    app.run()


Python3
from flask import Flask
app = Flask(__name__)
  
@app.route('/hello/')
def hello_name(name):
   return 'Hello %s!' % name
  
if __name__ == '__main__':
   app.run()


HTML

         
      
           

Enter Name:

              

              

         
          


Python3
from flask import Flask, redirect, url_for, request
app = Flask(__name__)
  
@app.route('/success/')
def success(name):
   return 'welcome %s' % name
  
@app.route('/login',methods = ['POST', 'GET'])
def login():
   if request.method == 'POST':
      user = request.form['nm']
      return redirect(url_for('success',name = user))
   else:
      user = request.args.get('nm')
      return redirect(url_for('success',name = user))
  
if __name__ == '__main__':
   app.run(debug = True)


将其保存在文件中,然后运行脚本,我们将得到这样的输出。

然后转到那里给出的 url,您将看到您的第一个网页在本地服务器上显示 hello world。
深入研究上下文,Flask 中的route()装饰器用于将 URL 绑定到函数。现在为了扩展此功能,我们的小型 Web 应用程序还配备了另一个方法add_url_rule() ,它是应用程序对象的函数,也可用于将 URL 与函数绑定,如上例中使用的 route()。

例子:

def gfg():
   return ‘geeksforgeeks’
app.add_url_rule(‘/’, ‘g2g’, gfg)

输出:

geeksforgeeks

你也可以在你的 webapp 中添加变量,你可能会想它会如何帮助你,它会帮助你动态地构建一个 URL。所以让我们用一个例子来弄清楚。

Python3

from flask import Flask
app = Flask(__name__)
  
@app.route('/hello/')
def hello_name(name):
   return 'Hello %s!' % name
  
if __name__ == '__main__':
   app.run()

并转到 URL http://127.0.0.1:5000/hello/geeksforgeeks它会给你以下输出。

我们也可以在 Flask 中使用 HTTP 方法,让我们看看如何做到这一点
HTTP协议是万维网数据通信的基础。该协议定义了从指定 URL 检索数据的不同方法。这些方法如下所述。

默认情况下,Flask 路由响应 GET 请求。但是,可以通过向 route() 装饰器提供方法参数来更改此首选项。
为了演示 POST 方法在 URL 路由中的使用,首先让我们创建一个 HTML 表单,并使用 POST 方法将表单数据发送到 URL。
现在让我们创建一个 html 登录页面。
下面是文件的源代码

HTML


         
      
           

Enter Name:

              

              

         
          

现在保存这个文件 html 作为尝试这个Python脚本来创建服务器。

Python3

from flask import Flask, redirect, url_for, request
app = Flask(__name__)
  
@app.route('/success/')
def success(name):
   return 'welcome %s' % name
  
@app.route('/login',methods = ['POST', 'GET'])
def login():
   if request.method == 'POST':
      user = request.form['nm']
      return redirect(url_for('success',name = user))
   else:
      user = request.args.get('nm')
      return redirect(url_for('success',name = user))
  
if __name__ == '__main__':
   app.run(debug = True)

开发服务器开始运行后,在浏览器中打开 login.html,在文本框中输入名称,然后单击提交按钮。输出如下。

结果将是这样的

Flask 的功能远不止这些。如果您对Python的这个 Web 框架感兴趣,您可以深入了解下面提供的链接以获取更多信息。