📅  最后修改于: 2020-05-14 02:57:56             🧑  作者: Mango
使用Python构建网页。
有许多模块或框架可以使用Python来创建网页,例如bottle,django,flask等。但是真正流行的是Flask和Django。与Flask相比,Django易于使用,但是FLask为您提供了通用的编程功能。
要了解什么是Flask,您必须了解一些通用术语。
Flask是一个用Python编写的Web应用程序框架。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎, 两者都是Pocco项目。
安装:
我们将需要两个软件包来设置您的环境。virtualenv供用户并行创建多个Python环境。因此,它可以避免库的不同版本之间的兼容性问题。
1,虚拟环境
pip install virtualenv
2.Flask
pip install Flask
在完成软件包的安装后,让我们开始编写代码。
# 必须在项目中导入flask模块
# Flask类的对象是我们的WSGI应用程序.
from flask import Flask
# Flask构造函数将当前模块的名称(__name__)作为参数。
app = Flask(__name__)
# Flask类的route()函数是一个装饰器,它告诉应用程序哪个URL应该调用关联的函数.
@app.route('/')
# “ /" URL与hello_world()函数绑定.
def hello_world():
return 'Hello World'
# 测试函数
if __name__ == '__main__':
# Flask类的run()方法在本地开发服务器上运行应用程序.
app.run()
将其保存在文件中,然后运行脚本,我们将获得类似的输出:
然后转到给定的URL,您将看到第一个网页在本地服务器上显示。
进一步研究上下文,Flask中的route()装饰器用于将URL绑定到函数。现在,为了扩展此函数,我们的小型Web应用程序还配备了另一种方法add_url_rule(),该方法是应用程序对象的函数,也可用于将URL与函数绑定,如上例所示,使用route()。
例:
def gfg():
return ‘芒果文档’
app.add_url_rule(‘/’, ‘g2g’, gfg)
输出:
芒果文档
您还可以在Web应用程序中添加变量,您可能正在考虑它会如何帮助您,它将帮助您动态构建URL。因此,让我们用一个例子弄清楚。
from flask import Flask
app = Flask(__name__)
@app.route('/hello/')
def hello_name(name):
return 'Hello %s!' % name
if __name__ == '__main__':
app.run()
并转到网址http://127.0.0.1:5000/hello/geeksforgeeks,它将为您提供以下输出:
我们还可以在Flask中使用HTTP方法,看看如何做到这一点
HTTP协议是万维网上数据通信的基础。在此协议中定义了从指定URL检索数据的不同方法。该方法在下面描述。
GET:以简单或未加密的形式将数据发送到服务器。
HEAD:以简单或未加密的形式将数据发送到服务器,而没有正文。
HEAD:将表单数据发送到服务器,数据不缓存。
PUT:用更新的内容替换目标资源。
DELETE:删除作为URL提供的目标资源。
默认情况下,Flask路由会响应GET请求。但是,可以通过为route()装饰器提供方法参数来更改此首选项。
为了演示POST方法在URL路由中的使用,首先让我们创建一个HTML表单,然后使用POST方法将表单数据发送到URL。
现在,我们创建一个html登录页面。
下面是文件的源代码
现在将此文件html保存为尝试使用此Python脚本创建服务器。
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,在文本字段中输入名称,然后单击提交按钮。输出如下:
结果将是这样的: