创建一个python项目

第一步:打开pytharm

第二步:创建pure python 类型的项目

第三步:创建项目完成之后选择之前创建的py3_flack 作为虚拟环境

第四步:路径可以通过在制定虚拟环境下,输入which   python 获得

例如:

新建文件:helloworld.py

导入Flask类:   from flask import Flask

Flask函数接收一个参数__name__ ,它会指向程序所在的包:     app = Flask(__name__)

装饰器的作用是将路由映射到视图函数 index:

@app.route("/")
def index():
  return "hello"
 
Flask应用程序实例的run方法启动WEB服务器
if __name__ == "__main__":
#port修改端口号,flask默认端口号是5000,debug测试改变,默认Flast
app.run(debug=True,port=5001)
 
路由基本定义
 
 
(1)制定路由地址
#使用flask路由器,指定网址和控制器
#制定访问路径为  /
@app.route("/")
def index():
  return "hello"
 
 
(2)有时我们需要将同一类url映射到同一个视图函数上,所以我们需要给路由传参
#给网址增加参数功能使用<变量名称>,路由方法要和 路由器定义的参数同步
 
【1】传递单个参数
@app.route("/hello/<id>")
def hello(id):
  return "你好,你的参数是: %s" % id
 
【2】传递多个参数
@app.route("/hello/<id>/<name>")
def hello(id,name):
  return "你好,你的参数是: %s,%s" % (id,name)
 
【3】 路由传递的参数默认当作str处理,也可以设定参数的类型
@app.route("/hello/<int:id>")

def hello(id):
  return "你好,你的参数是: %s" % id
 
小总结:
因为尖括号中的内容是动态的,所以尖括号中 在这里指定参数的类型,实际上是int代表integerConverter 去处理url传递的参数
 
 视图常用逻辑
 
1.返回json
 在使用Flask写接口时需要给客户端返回一个json数据,在Flask中可以指接使用jsonify生成一个JSON响应
 
例:
#使用jsonify模块来让网址直接显示json数据
@app.route("/json")
def re_json():
#定义好数据格式
  json_dict = {'id':10,'title':'flask的应用','countent':'flask的json格式化'}
#使用jsonify将定义好的数据转换成json格式,并返回给前端
  return jsonify(json_dict)
 
 在使用jsonify模块时,显示内容可能出现编码问题解决方案如下:
 
(1)在代码中,插入数据
#解决中文乱码问题,
app.config['JSON_AS_ASCII'] = False
#开启debug模式
app.config['DEBUE'] = True
 
(2)从配置文件里面加载配置
步骤:
1.在当前文件下创建一个文件,例如:config.ini
2.在新文件中写入   DEBUG = True      ,JSON_AS_ASCII = False  #代码必须大写
3.在写代码的文件中写入 : app.config.from_pyfile('config.ini')
小建议:
不推荐直接使用json.dumps转成JSON字符串返回,因为返回的数据要符合HTTP协议规范。
 
 (3) 建立一个配置类从配置中加载配置
# class Config(object):
# DEBUG = True
# TSON_AS_ASCII = False
app.config.from_object(Config)
(4)

从环境变量中加载
app.config.from_envvar("app_config")
2.重定向
 
 重定向可以:
自己的视图函数;可以直接填写自己的url路径;也可以使用url_for生成指定试图所对应的url
 
例:
(1)
#直接填写自己的url路径
@app.route('/123')
def reurl():
return redirect("http://music.163.com/")
 
 (2)自己的视图函数

@app.route('/demo')
def demo():
return 'demo'
 
 
(3)使用url_for生成指定试图所对应的url
@app.route('/demo')
def demo():
return redirect(url("demo1"),user_id = 100)
 
 异常捕获
统一对状态码进行捕获
@app.errorhandler(405)
def internal_sever_error(e):
return "这个接口不能用get请求,只能用post请求"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

python三大框架之一flask应用的更多相关文章

  1. python 三大框架之一Flask入门

    Flask轻量级框架,Flask是python中的轻量级框架. 打开终端 输入pip install Flask 命令 下载以及安装Flask框架 检查是否下载成功及能否使用 首先导入python环境 ...

  2. python三大框架之一flask中cookie和session的相关操作

    状态保持 Cookie cookie 是指某些网站为了 辨别  用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies. cookie是由服务器端生成,发送给客户端 ...

  3. python三大框架之一(flask介绍)

    Flask , Django,  Tornado 是python中常用的框架,也是python的三大框架.它们的区别是:Flask: 轻量级框架: Django:重量级框架: Tornado:性能最好 ...

  4. Python Web框架 bottle flask

    Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. 1 2 3 4 pip instal ...

  5. Python WEB框架之Flask

    前言: Django:1个重武器,包含了web开发中常用的功能.组件的框架:(ORM.Session.Form.Admin.分页.中间件.信号.缓存.ContenType....): Tornado: ...

  6. Python Webk框架学习 Flask

    Flask是一个使用Python编写的轻量级Web应用框架.基于Werkzeug WSGI工具箱和Jinja2 模板引擎. Flask使用BSD授权.Flask也被称为“microframework” ...

  7. web 框架本质 及python三大框架对比

    . 导入Bootstrap.css (开发版3.3.7) . 还要Bootstrap.js,并且还要引入jQuery(). . 栅格系统 . container,row必须包含在container中 ...

  8. python 三大框架之一Django入门

    Django 是从真实世界的应用中成长起来的,它是由 堪萨斯(Kansas)州 Lawrence 城中的一个 网络开发小组编写的. 它诞生于 2003 年秋天,那时 Lawrence Journal- ...

  9. python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...

随机推荐

  1. Linux查看某个命令属于哪个包

    有时修我们需要某个命令但其没有安装,提供该命令的包名也与命令名相差很大直接查找命令名找不到包,如rexec. 此时我们就非常需要这样一个工具:可以根据最终的命令查找提供该命令的软件包. 类型 命令 说 ...

  2. cpu占用过高排查

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 内容解释: PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小 ...

  3. jsp中的JSTL与EL表达式用法及区别

    对于JSTL和EL之间的关系,这个问题对于初学JSP的朋友来说,估计是个问题,下面来详细介绍一下JSTL和EL表达式他们之间的关系,以及JSTL和EL一些相关概念! EL相关概念 JSTL一般要配合E ...

  4. Linux防火墙iptables的策略

    iptables策略 iptables -L #查看现有防火墙所有策略 iptables -F #清除现有防火墙策略 只允许特定流量通过,禁用其他流量 1.允许SSH流量(重要) iptables - ...

  5. 三:使用docker-machine安装虚拟机上的docker

    1.docker安装之后自带docker-machine:(需要win10专业版或mac) 2.如何远程管理一个docker-machine?(以下是Mac环境) 关闭本地的docker应用.运行do ...

  6. Python3.7.0的安装方法

    安装Python3.7.0 1.下载Python-3.7.0.tar.xz包安装 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.t ...

  7. node fs 解决回调地域问题

    promisify问题 promisify = require('util).promisify const read = promisify( fs.readFile); read('input.t ...

  8. Cracking The Coding Interview 1.3

    //原文: // // Design an algorithm and write code to remove the duplicate characters in a string withou ...

  9. SWAP 简介

    swap 交换分区,是存放在内存当中的临时数据(断电数据丢失) SWAP作用:当内存不足时会导致系统挂了,SWAP就是起到一个临时内存的作用,当内存不足时SWAP充当临时内存,防止系统挂掉

  10. loadrunner json参数化

    因为json格式有{},所以LR参数化时如果也用默认的{}的话,会冲突,这样脚本运行时就无法识别,导致不能正确的读取参数化文件里的内容,此时把参数化的{}改成其他符号即可,比如<>