Flask

Django是一个大而全的框架,Flask是一个轻量级的框架。

区别:

  • Django内部集成了大量的组件;请求处理是逐一封装和传递;
  • Flask本身并没有太多的功能,但是第三方组件非常丰富;利用上下文管理来实现请求处理

Flask的wsgi

Flask框架依赖werkzeug wsgi,flask本身没有的wsgi。

  1. from werkzeug.serving import run_simple
  2. class Flask(object):
  3. def __call__(self,environ, start_response):
  4. return "xx"
  5. def run(self):
  6. run_simple('127.0.0.1', 5000, self)
  7. app = Flask()
  8. if __name__ == '__main__':
  9. app.run()

Flask 的简单操作

  • Flask 路由:以装饰器的形式
  1. @app.route("/index")
  2. def index():
  3. data_dict = DATA_DIC
  4. return render_template("index.html",data_dict=data_dict)
  • Flask 默认允许的请求方式为get,接收其他请求需要设置:
  1. @app.route("/login",methods=["POST","GET"])
  • Flask 别名设置,默认别名为函数名并且不能重名
  1. from flask import Flask,render_templaterequest,url_for
  2. app = Flask(__name__)
  3. @app.route("/index",endpoint="homepage") # 设置别名
  4. def index():
  5. data_dict = DATA_DIC
  6. return render_template("index.html",data_dict=data_dict)
  7. @app.route("/edit")
  8. def edit():
  9. return redirect(url_for("homepage")) # 使用别名
  • Flask 获取post请求的数据
  1. @app.route("/login",methods=["POST","GET"]) # 设置请求方式
  2. def login():
  3. user = request.form.get("user") # 通过request.form获取post数据
  4. pwd = request.form.get("pwd")
  5. if user == "xxx" and pwd == "123":
  6. return redirect("/index/")
  7. error = "用户名或密码错误"
  8. return render_template("login.html",error=error)
  • Flask 获取get请求数据
  1. @app.route("/edit",methods=["POST","GET"])
  2. def edit():
  3. nid = request.args.get("nid") # request.args获取get请求中的值
  • Flask 获取URL中的值
  1. # 请求URL:http://127.0.0.1:5000/edit?nid=2
  2. @app.route("/delete/<int:nid>") # 接收数据,设置数据类型
  3. def delete(nid):
  4. del DATA_DIC[nid]
  5. return redirect(url_for("homepage"))
  • Flask 返回值
  1. return "xxx" # 返回字符串
  2. return jsonify({"code":1000,"msg":"xxxx"}) # 返回json格式数据
  3. return render_template("login.html",xxx=a) # 返回模板,可以传参数
  4. return redirect("/index/") redirect(url_for("homepage")) # 跳转到URL,或别名

Flask介绍及简单使用的更多相关文章

  1. python的Flask 介绍

    Flask 介绍 知识点 微框架.WSGI.模板引擎概念 使用 Flask 做 web 应用 模板的使用 根据 URL 返回特定网页 实验步骤 1. 什么是 Flask? Flask 是一个 web ...

  2. Flask学习【第1篇】:Flask介绍

    Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是So ...

  3. Flask【第1篇】:Flask介绍

    Flask入门 一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Wer ...

  4. 12.1 flask基础之简单实用

    一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是 ...

  5. 【转载】Ssh整合开发介绍和简单的登入案例实现

    Ssh整合开发介绍和简单的登入案例实现 Ssh整合开发介绍和简单的登入案例实现 一  介绍: Ssh是strtus2-2.3.1.2+ spring-2.5.6+hibernate-3.6.8整合的开 ...

  6. python模块介绍- HTMLParser 简单的HTML和XHTML解析器

    python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

  7. 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

    一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...

  8. WebRTC介绍及简单应用

    WebRTC介绍及简单应用 WebRTC,即Web Real-Time Communication,web实时通信技术.简单地说就是在web浏览器里面引入实时通信,包括音视频通话等. WebRTC实时 ...

  9. 1. pyhanlp介绍和简单应用

    1. pyhanlp介绍和简单应用 2. 观点提取和聚类代码详解 1. 前言 中文分词≠自然语言处理! 中文分词只是第一步:HanLP从中文分词开始,覆盖词性标注.命名实体识别.句法分析.文本分类等常 ...

随机推荐

  1. MySQL数据类型:UNSIGNED注意事项(转)

    原文地址:https://www.cnblogs.com/blankqdb/archive/2012/11/03/blank_qdb.html 1. UNSIGNED UNSIGNED属性就是将数字类 ...

  2. 在OpenShift 3.11环境开启多网络平面

    1.整体架构 Multus CNI是OpenShift的容器网络接口(CNI)插件,可将多个网络接口附加到Pod. 通常,在OpenShift中,每个Pod仅具有一个网络接口(除了回送),Multus ...

  3. 关于aardio修改注册表默认键值的问题(转)

    今天用aardio做注册表练习  遇到一个问题.  就是不知道怎么用aardio修改已存在的默认的注册表键的值.. 导出注册信息看了一下 默认的和普通的键值不太一样  形式是  @="要写入 ...

  4. maya2018 + VS2017 C++编译环境搭建

    1. 下载: https://www.autodesk.com/developer-network/platform-technologies/maya 2. 解压,将devkitBase下的incl ...

  5. 【软件工具】ImageMagick

    如何安装; 如何检查是否安装成功呢: 如何使用: https://imagemagick.org/index.php     参考 1. 官网: 完

  6. CVE-2019-16278-Nostromo Web Server远程代码执行

    本文主题主要是分析CVE-2019-16278漏洞原因.漏洞如何利用以及为什么会受到攻击.这个CVE跟Nostromo Web服务器(又名nhttpd)有关,这个组件是在FreeBSD,OpenBSD ...

  7. RabbitMQ使用及与spring boot整合

    1.MQ 消息队列(Message Queue,简称MQ)——应用程序和应用程序之间的通信方法 应用:不同进程Process/线程Thread之间通信 比较流行的中间件: ActiveMQ Rabbi ...

  8. spring boot前后端参数传递方式

    使用spring boot2X做后端,postman做前端测试 1.获取json字符串 @RestController public class Demo { @RequestMapping(&quo ...

  9. 2017ACM/ICPC广西邀请赛 Color it

    Color it Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others)Tota ...

  10. jquery监听回车

    jquery监听回车 <pre> $("#loginusername, #loginpassword, #code").keydown(function() { if( ...