Flask—学习笔记

概述

  • Flask是一个用Python编写的Web应用程序框架。
  • Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。
  • Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。
  • Flask没有默认使用的数据库、窗体验证工具。

Web Framework
Web Application Framework(Web应用程序框架)或简单的Web Framework(Web框架)表示一个库和模块的集合,使用Web应用程序开发人样能够编写应用程序,而不必担心协议,线程管理等低级细节。

Flask
Flask是一个用Python编写的Web应用程序框架。Flask基于Werkzeug WSGI工具包和Jinjia2模板引擎。

Werkzeug
Werkzeug是一个WSGI工具包,它实现了请求,响应对象和实用函数。这使得能够在其上构建Web框架。

Jinja2
Jinja2是Python的一个流行的模板引擎。Web模板系统将模板与待定数据源组合以呈现动态网页。

安装

pip3 install flask --user

应用

# hello.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World'
if __name__ == '__main__':
    app.run()
  • Flask 类的一个对象是WSGI应用程序。
  • Flask构造函数使用当前模块(name)的名称作为参数。
  • Flask类的route()函数是一个装饰器,告诉应用程序哪个URL应该调用相关的函数。
app.route(rule, options)
# rule 参数表示与该函数的URL绑定
# options是要转发给基础rule对象的参数列表

在上面的示例中,’/'URL与hello_world()函数绑定。因此,当在浏览器中打开web服务器的主页时,将呈现该函数的输出。

  • Flask类的run()方法在本地开发服务器上运行应用程序。
app.run(host, port, debug, options)
#host 要监听的主机名,默认为127.0.0.1(localhost)。设置为0.0.0.0以使服务器在外部可用。
# port 默认为5000
#debug 默认为false,如果设置为True,则提供调试信息。
#potions 要转发到底层的Werkzeug服务器

在这里插入图片描述
在这里插入图片描述

HTTP方法

HTTP协议是万维网中数据通信的基础。在该协议中定义了从指定URL检索数据的不同方法。

  • GET 以未加密的形式将数据发送到服务器,最常见的方法。
  • HEAD 和GET方法相同,但是没有响应体。
  • POST 用于将HTML表单数据发送到服务器。POST方法接收的数据不由服务器缓存。
  • PUT 用上传的内容替换目标资源的所有当前表示。
  • DELETE 删除由URL给出的目标资源的所有当前表示。

示例

  • 登录脚本
<html>
   <body>
      <form action = "http://10.27.1.202:5000/login" method = "post">
          <p>Enter Name:</p>
          <p><input type = "text" name = "nm" /></p>
          <p><input type = "submit" value = "submit" /></p>
      </form>
   </body>
</html>
  • 服务器端代码
from flask import Flask,request, url_for, redirect
app = Flask(__name__)

@app.route('/success/<name>')
def success(name):
    return 'welcome %s' % name

@app.route('/login', methods = ['POST', 'GET'])
def login():
    if request.method == 'POST':
        user = request.form['nm']
        print(user)
        return redirect(url_for('success', name = user))
    else:
        user = request.args.get('nm')
        print(user)
        return redirect(url_for('success', name = user))
        
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000, debug=True)
  • 运行服务器段代码
    在这里插入图片描述
  • 用浏览器打开登录脚本
    在这里插入图片描述
  • 输入字符串
    在这里插入图片描述
  • 点击“submit”,会自动跳转到如下界面
    在这里插入图片描述

参考资料

Flask 教程
欢迎使用 Flask

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值