flask

flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。

使用flask

当你编写一个函数时,要想每个人都可以使用,需要用到flask来实现这个目标。

  1. 导入falsk.Flask类
  2. 实例化一个Flask对象
  3. 绑定路由
  4. 运行flask应用
# 1. 导入Flask类;
from flask import  Flask# 2. 实例化一个Flask对象;
#     __name__是模块的名称或者包的名称
#     作用: 根据这个参数确定flask应用的路径, 从而快速查找模板和html文件的默认路径;
#     模块就是python文件; 包就是目录(跟普通目录多加一个__init__.py);
#
app = Flask(__name__)# 3-1.基本路由:通过路由绑定一个视图函数
#   @app.route('/'): 告诉Flask哪个URL才能出发对应的函数, 又称为路由;
#   对应定义了一个视图函数, 也就是返回给用户浏览器显示的内容;
@app.route('/')
def index():return  "<h1>hello world</h1>"@app.route('/login/')
def login():return  "login"# 4. 运行Flask应用, 可以指定ip和端口;
# '0.0.0.0' 所有的IP都可以访问到;
app.run('0.0.0.0', 9000)


路由及变量规则

在flask框架中,路由表示用户请求的URL找出其对应的处理函数
常见路由的规则

  1. url的一部分可以标记为变量<变量名>
  2. flask中路由里面的变量常见类型:

         int, string, float, path, uuid
    
from flask import Flask, requestapp = Flask(__name__)
@app.route('/<int:id>/comments/')
def comment1(id):return "Comment id: %s" %(id)@app.route('/welcome/<string:user>/')
def welcome(user):app.logger.debug('this is a debug')app.logger.warning('this is a warn')return user + "用户,欢迎来到SheenStar的主页"# 特殊的url地址: http://www.baidu.com/query?id=13&name=clotho
@app.route('/query')
def query():# 获取url地址里面key值对应的value值;id = request.args.get('id')name = request.args.get('name')return "id: %s, name: %s" %(id, name)
app.run()



反向URL

获取HTTP请求数据

客户端通过URL访问服务端程序,会发送给服务端两类消息,一类是HTTP请求头,另一类是请求数据。

1. 常见HTTP请求方法:
GET: 1). 获取信息 2). 提交的信息会展示在url: http://www.wewtos.org/login?user=sheen&passwd=star
POST:1). 提交信息, 不在url里面展示, 有利于数据的安全性;2. 默认路由接受的请求方法为_____get____?
如何指定接收多个HTTP请求方法?
路由: @app.route('/login/', methods=['GET', 'POST'])
视图函数: def login():3. 如何判断用户请求的HTTP方法?   request.method如何获取用户POST请求提交的表单数据? request.form['user']4. 模板渲染(jinja2):
why?    python中生成html不易修改与维护, 所以将html的内容独立到templates目录中;
how?
1). 去当前项目目录下寻找templtes是否存在?再去判断templates目录下是否有login.html文件?
2). 读取这个login.html文件的内容, 作为render_template的返回值;
3). 最终返回给用户浏览器;
render_template('login.html')5. 重定向和错误?
redirect
return  render_template('login.html', message="用户名或者密码错误")

示例:登陆跳转

#这里的index.html、login.html、404.html是需要自己提前写好的可访问网页
#所有的模板需要放在templates目录下
from flask import Flask, request, render_template, redirect, url_for, abortapp = Flask(__name__)@app.route('/')
def index():return render_template('index.html')@app.route('/login/', methods=['GET', 'POST'])
def login():if request.method == 'POST':print(request.form)# 1. 如何获取到用户提交的信息呢?user = request.form['user']passwd = request.form['passwd']# 2. 判断用户名和密码是否正确if user == 'root' and passwd =='sheen':# 如果登陆成功, 跳转到主页;return redirect(url_for('index'))else:# 如果登陆失败, 重新登陆;return  render_template('login.html', message="用户名或者密码错误")else:# 用户是GET请求, 返回登陆的html页面# 1. 读取login.html文件的内容# 2. 将读取的内容返回给用户界面return render_template('login.html')# 404异常处理: 类似于捕获异常
@app.errorhandler(404)
def not_found(e):return  render_template('404.html')# 抛出异常
@app.route('/user/<int:user_id>/')
def user(user_id):if 0<int(user_id)<=100:return  "欢迎访问: %s" %(user_id)else:abort(404)app.run()


python大佬养成计划----Web框架(Flask)相关推荐

  1. python大佬养成计划----flask_sqlalchemy操作数据库

    flask_sqlalchemy 使用对象关系映射(Object-Relational Mapper, ORM)框架,它将低层的数据库操作指令抽象成高层的面向对象操作.也就是说,如果我们直接使用数据库 ...

  2. python大佬养成计划-----多进程

    进程 Python是运行在解释器中的语言,查找资料知道,python中有一个全局锁(GIL),在使用多进程(Thread)的情况下,不能发挥多核的优势.而使用多进程(Multiprocess),则可以 ...

  3. python大佬养成计划----HTML网页设计二

    文本标签 换行标签 -- br 是单标签,意味着它没有结束标签.起强制换行作用 段落中的文字<br>段落中的文字<br>段落中的文字<br> 水平分割线 -- hr ...

  4. python大佬养成计划----HTML网页设计一

    HTML简介 级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准. 它通过标记符号来标记要显示的网页中的各个部分.网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览 ...

  5. python大佬养成计划--协程实现TCP连接

    协程实现TCP连接 在网络通信中,每个连接都必须创建新线程(或进程) 来处理,否则,单线程在处理连接的过程中, 无法接受其他客户端的连接.所以我们尝试使用协程来实现服务器对多个客户端的响应. 与单一T ...

  6. python微型web框架flask介绍

    Flask是一个基于python的,微型web框架.之所以被称为微型是因为其核心非常简单,同时具有很强的扩展能力.它几乎不给使用者做任何技术决定. 安装flask时应该注意其必须的几个支持包比如Jin ...

  7. Web框架——Flask系列之Flask简介(一)

    一.Web应用程序作用 Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档 二.关于Web框架 (一)什么是Web框架? 已经封装好了一段代码,协助程序快速开发,相当于 ...

  8. 『Python学习笔记』Python中的异步Web框架之fastAPI介绍RestAPI

    Python中的异步Web框架之fastAPI介绍&RestAPI 文章目录 一. fastAPI简要介绍 1.1. 安装 1.2. 创建 1.3. get方法 1.4. post方法 1.5 ...

  9. python web flask开发框架_零基础入门python web框架Flask开发

    Flask框架是Python开发的一个基于Werkzeug和Jinja 2的web开发微框架,它的优势就是极其简洁,但又非常灵活,而且容易学习和应用.因此Flask框架是Python新手快速开始web ...

  10. 框架详解_详解:python Web框架flask表单实现(建议收藏)

    今天为大家带来的内容是:python框架flask表单实现详解 文章内容主要介绍了python框架flask表单实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需 ...

最新文章

  1. shell实例第10讲:判断用户输入的是否为数字
  2. 转载 1-EasyNetQ介绍(黄亮翻译) https://www.cnblogs.com/HuangLiang/p/7105659.html
  3. 最大匹配 人员分配[邻接矩阵]
  4. sonar 服务器搭建 遇到各种问题
  5. MYSQL关于日期统计常用的SQL语句
  6. php将get传参解析成数组,php解析url (parse_url) 参数成数组 (parse_str)
  7. SpringBoot+Vue.js实现大文件分片上传、断点续传与极速秒传
  8. 移远ec20型号区别_移远EC20的使用
  9. 记事本java代码_Java记事本源代码(完整).doc
  10. 基于labview的虚拟简单信号发生器
  11. Linux怎么将输入法添加,在Linux系统中给fcitx下的输入法添加自定义词库的方法
  12. 北大计算机学霸,揭秘:2018北大在京录取的学霸们有何特长(组图)
  13. 第七章第八章思维导图
  14. tiny linux u盘_多系统U盘启动盘制作工具(YUMI)下载-多系统U盘启动盘制作工具(YUMI)PC版下载v2.0.7.6...
  15. 西门子PLC快速查找数据算法
  16. 近期技术讨论贴(持续更新:12-10)
  17. 乐见 SOA 和 EA 融合之势
  18. SECS-GEM通信标准的特点
  19. 【bzoj1455】罗马游戏 可并堆
  20. Linux性能排查——CPU软中断问题

热门文章

  1. 【Git/Github学习笔记】Git常用命令(代码冲突二)
  2. 智能优化算法:鸡群优化算法-附代码
  3. GIS案例练习-----------第二天
  4. 【Landsat 8】遥感影像文件内容及命名规则
  5. 去除椒盐噪声(简单的matlab代码实践,PSNR评价)
  6. 图像处理中的空间域处理方法
  7. 二维向量vector初始化问题(以统计字符串字母题为例)
  8. 二级分类php代码,php smarty 二级分类代码和模版循环例子
  9. 实习踩坑之路:一个诡异的SQL?PageHelper莫名多了一个Limit子句,导致SQL执行错误?
  10. 实习成长之路:MySQL十:怎么给字符串字段加索引?