创建一个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. Eclipse集成weblogic教程

    1.在线安装插件 1.1安装Oracle Weblogic Servers Tools oeop是添加的软件仓库的名字,随便写主要是方便记. 仓库链接:http://www.oracle.com/te ...

  2. AvalonJS+MVVM实战部分源码

    轻量级前端MVVM框架avalon,它兼容到 IE6 (其他MVVM框架,KnockoutJS(IE6), AngularJS(IE9), EmberJS(IE8), WinJS(IE9) ),它可以 ...

  3. linux下查看运行进程详细信息

    通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等.这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个 ...

  4. 网口扫盲二:Mac与Phy组成原理的简单分析

    1. general 下图是网口结构简图.网口由CPU.MAC和PHY三部分组成.DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中. MAC(Medi ...

  5. react+dva+antd/antd-mobile

    github仓库pc: https://github.com/llcMite/react-dva-antd.git github仓库mobile:https://github.com/llcMite/ ...

  6. java⑾

    1.数组: 01.一组 相同数据类型的集合! 02.数组在内存中会 开辟一串连续的空间来保存数据! ***存储30名学生的姓名! 01.姓名 应该用什么数据类型保存??? String02.难道需要创 ...

  7. linux 基础储备

    ls命令是Linux下最常用的命令之一,ls跟dos下的dir命令是一样的都是用来列出目录下的文件,下面我们就来一起看看ls的用法ls /home 这个命令不但可以添加用户到系统,而且可以默认为新用户 ...

  8. GFS中文翻译

    Google文件系统 GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,但可以提供容错功能.它可以给大量的用户提供总体性能较高的服务. 1. ...

  9. js正则学习

    一直对正则很纠结也很畏惧,以前感觉花时间理解一个个奇奇怪怪的符号,还不如直接百度谷歌之. 但知其然不知其所以然也是种痛苦,所以花了两天稍微学了一下,虽然没学很深入彻底,但也比之前进步不少,特此笔记. ...

  10. EEPROM读写学习笔记与I2C总线(转)

    reference:https://www.cnblogs.com/uiojhi/p/7565232.html 无论任何电子产品都会涉及到数据的产生与数据的保存,这个数据可能并不是用来长久保存,只是在 ...