一、简介

Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug  WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。

“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以 ),也不意味着 Flask  在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些  Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Flask 可以与您珠联璧合。

默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask  支持用扩展来给应用添加这些功能,如同是 Flask  本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask  也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用

二、安装

pip3 install flask

三、werkzeug简介

Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库。这里稍微说一下, werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西,例如 Request,Response 等等

代码示例:

from werkzeug.wrappers import Request, Response@Request.application
def hello(request):return Response('Hello World!')if __name__ == '__main__':from werkzeug.serving import run_simplerun_simple('localhost', 4000, hello)

四、flask快速使用

from flask import Flask
# 实例化产生一个Flask对象
app=Flask(__name__)
# 开启调试模式后,修改代码也可自动重启
app.debug=True
# 将 '/'与视图函数index的对应关系添加到路由中
@app.route('/')
def index():return 'ok'
if __name__ == '__main__':app.run()

案例:登录,显示用户信息

main.py

from flask import Flask,render_template,request,redirect,session,url_for
app = Flask(__name__)
app.debug = True
app.secret_key = 'sdfsdfsdfsdf'USERS = {1:{'name':'张三','age':18,'gender':'男','text':"道路千万条"},2:{'name':'李四','age':28,'gender':'男','text':"安全第一条"},3:{'name':'王五','age':18,'gender':'女','text':"行车不规范"},
}@app.route('/detail/<int:nid>',methods=['GET'])
def detail(nid):user = session.get('user_info')if not user:return redirect('/login')info = USERS.get(nid)return render_template('detail.html',info=info)@app.route('/index',methods=['GET'])
def index():user = session.get('user_info')if not user:# return redirect('/login')url = url_for('l1')return redirect(url)return render_template('index.html',user_dict=USERS)@app.route('/login',methods=['GET','POST'],endpoint='l1')
def login():if request.method == "GET":return render_template('login.html')else:# request.query_stringuser = request.form.get('user')pwd = request.form.get('pwd')if user == 'lqz' and pwd == '123':session['user_info'] = userreturn redirect('http://www.baidu.com')return render_template('login.html',error='用户名或密码错误')if __name__ == '__main__':app.run()

templates/detail.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>详细信息 {{info.name}}</h1><div>{{info.text}}</div>
</body>
</html>

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>用户列表</h1><table>{% for k,v in user_dict.items() %}<tr><td>{{k}}</td><td>{{v.name}}</td><td>{{v['name']}}</td><td>{{v.get('name')}}</td><td><a href="/detail/{{k}}">查看详细</a></td></tr>{% endfor %}</table>
</body>
</html>

templates/login.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form method="post">
<p>用户名:<input type="text" name="name"></p>
<p>密码:<input type="password" name="pwd"></p>
<input type="submit" value="提交">
</form>
</body>
</html>

转载于:https://blog.51cto.com/silencezone/2350347

一、flask的基本使用-flask相关推荐

  1. python flask web开发_Python Flask web后端开发

    1 路由选择 from flask import Flask from flask import request from flask import make_response from flask ...

  2. Flask入门学习---Hello,Flask!

    实例程序在helloflask/demos/hello目录下 1.最小的Flask程序 在hello目录下的app.py脚本中包含了一个最小的Flask程序. from flask import Fl ...

  3. Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法

    https://www.cnblogs.com/DragonFire/p/9259999.html 是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jin ...

  4. flask mysql 1366_2017-11-17 Python Flask Script+mysql环境设置

    [1.初级版] flask-scrpit安装. 使用flask-scrpit可以创建命令,并在Flask的应用上下文中执行,因为这样才能对Flask对象进行修改.Flask Script自带了一些默认 ...

  5. flask异步操作_从Flask到FastAPI的平滑迁移

    作者 | Ng Wai Foong 译者 | 马可薇 策划 | 田晓旭 迁移 Flask 服务器以获得更好的性能和可维护性. 本文最初发布于 BetterProgramming,经原作者授权由 Inf ...

  6. python flask api部署_使用flask开发api——部署flask,使用gunicorn+gevent模式的http server...

    使用flask开发api--部署flask,使用gunicorn+gevent模式的http server 用flask开发了服务端的api,记录部署上服务器的过程,以供后续使用. 安装python3 ...

  7. 快速上手Flask(一) 认识框架Flask、项目结构、开发环境

    文章目录 快速上手Flask(一) 认识框架Flask.项目结构.开发环境 Web开发轻量级框架Flask Flash历史和团队 Pallets 项目 flask运行过程 使用flask的场景 使用P ...

  8. 江在川上曰:云服务器上的flask项目部署(Ubuntu+Flask+Gunicorn+Supervisor+Nginx+Anaconda)

    云服务器上的flask项目部署(anaconda.python.flask等相关安装) 在探索未知的路上走了很多弯路,这里记载了我在阿里云上部署项目切实可行的步骤,当然问题因人而异,没有四海皆适用的准 ...

  9. [Flask] [Python3] 第一个flask APP

    * Windows10 + Python3.7 + Flask 1.0.2 + Pycharm 2018.2.3 Professional * 摘要 使用virtualenv搭建独立开发环境 使用py ...

最新文章

  1. 工业级服务器销售电话,工业级服务器
  2. Linux原始套接字实现分析---转
  3. php+html 实现加减乘除
  4. 使用SQL Server 2008提供的表分区向导
  5. 哇、、、、C++ 实现单向链表
  6. UTC时间与当地时间的转换关系?
  7. c语言数码管共阳极动态显示,编程实现共阳极八个数码管依次显示12345678
  8. Python第十课(函数3)
  9. 风险预测模型_慢乙肝患者的HCC风险预测模型——精准医学的希望|高分综述
  10. 图解 魔方快速还原 7步法
  11. Go语言类库-reflect(反射)
  12. 【计算机导论调研报告】计算机从业人员的职业道德
  13. 计算机应用基础在线3,《计算机应用基础》第3阶段在线作业3.docx
  14. 大球分析系统_走地大球分析系统app
  15. Spring-@Bean
  16. 计算机控制面板有何用途,控制面板上面功能都有什么作用
  17. Springboot毕业设计毕设作品,心理评测系统 开题报告
  18. 【Linux】Linux的内核空间(低端内存、高端内存)
  19. Rust代码检查工具Clippy原理浅析
  20. 从底层结构开始学习FPGA(5)----移位寄存器

热门文章

  1. 【杂谈】为什么你学了AI,企业却不要你
  2. 2022版中国钕铁硼行业竞争格局与产销潜力预测报告
  3. 全球及中国氮肥产业营销趋势与十四五消费规模研究报告2022版
  4. 乡村振兴谋定齐鲁道路-农业大健康·李昌平:放权改革创新
  5. 【洛谷P3106】[USACO14OPEN]GPS的决斗Dueling GPS's
  6. (3)WebApi客户端调用
  7. 初识HTML流水笔记
  8. poj3580 伸展树(区间翻转 区间搬移 删除结点 加入结点 成段更新)
  9. JQuery图表插件Highcharts示例教程
  10. Fbpanel-轻巧的面板措施