Flask之RESTFul API前后端分离
Flask之RESTFul API前后端分离
一:虚拟环境搭建的两种方式
1 pipenv的使用
pip install --user pipenv安装pipenv在用户目录下
py -m site --user-site通过此命令找到用户基础目录,结果为C:\Users\u14e\AppData\Roaming\Python\Python35\site-packages
将用户基础目录结尾的site-packages换成Scripts,即C:\Users\u14e\AppData\Roaming\Python\Python35\Scripts,然后将这一路径添加到系统变量中
重新打开命令行工具,如cmd,pipenv --version检查是否安装成功
pipenv install创建一个虚拟环境
pipenv shell激活虚拟环境,exit推出虚拟环境
pipenv install requests安装python包,pipenv install django==1.11.7安装制定版本的包,pipenv uninstall requests卸载包
pipenv graph查看安装的包,以及依赖的其他包
2 pip virtualenv(使用workon进行管理)的使用
# 1 安装
pip install virtualenv
virtualenv --version
# 非Windows
# pip install virtualenvwrapper
# Windows
pip install virtualenvwrapper-win
# 查看当前所有的虚拟环境
workon
# 创建一个虚拟环境
mkvirtualenv new_env
# 删除一个虚拟环境
rmvirtualenv new_env
3 一次性导入多包方法(解决环境兼容问题)
# 在当前环境中将路径切到项目包打包txt文件目录下
- 项目依赖 pip3 install pipreqs
- 生成依赖文件:pipreqs ./ --encoding=='utf-8'
- 安装依赖文件:pip3 install -r requirements.txt
二:Flask的简单实用和蓝图
1 简单使用
# app.py
from flask import Flask
def create_app():
app = Flask(__name__) # 指定位置信息
app.config.from_object('app.config.setting')
app.config.from_object('app.config.secure')
register_blueprint(app)
return app
# genger.py---启动文件
from app.app import create_app
app = create_app()
@app.route('/v1/user/get')
def get_user():
return 'i am andy'
@app.route('/v1/book/get')
def get_book():
return 'this is get book '
if __name__ == '__main__':
app.run(debug=True)
2 蓝图的使用
# 分别设置蓝图 # book.py
from flask import Blueprint
book = Blueprint('book', __name__)
@book.route('/v1/book/get')
def get_book():
return 'this is get book '
# user.py
from flask import Blueprint
user = Blueprint('user', __name__)
@user.route('/v1/user/get')
def get_user():
return 'i am andy'
# app.py(生成app并注册蓝图)
from flask import Flask
def register_blueprint(app):
from app.api.v1.user import user
from app.api.v1.book import book
app.register_blueprint(user)
app.register_blueprint(book)
def create_app():
app = Flask(__name__) # 指定位置信息
app.config.from_object('app.config.setting')
app.config.from_object('app.config.secure')
register_blueprint(app)
return app
# 启动文件
from app.app import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=True)
3 蓝图的机制缺点
1 Blurpring蓝图不是用来拆分视图函数的,应该是用来模块级别的拆分
2 写路由的时候太繁琐(重复劳动,比如我写v1/book/get,又要写一个接口是v1/book/delete)
三:自定义红图
1 创建红图流程
新建一个包libs,里面放置的是红图的方法
#创建红图
class Redprint:
def __init__(slef,name):
self.name = name
self.mound = [] def route(self,rule,**options):
def decorator(f):
# f就是所装饰的方法试图,rule就是路由,options就是关键字参数,比如,methods=['get','post']
self.mound.append((f,rule,options))
return f
return decorator def register(self, bp, url_prefix=None):
if url_prefix is None:
url_prefix = '/' + self.name
for f, rule, options in self.mound:
endpoint = options.pop("endpoint", f.__name__)
bp.add_url_rule(url_prefix + rule, endpoint, f, **options)
# book.py(使用红图)
from app.libs.redprint import Redprint
api = Redprint('book')
@api.route('/get')
def get_book():
return 'this is get book '
# v1/__init__.py(创建蓝图对象,并在蓝图对象中注册红图)
from flask import Blueprint
from app.api.v1 import book, user
def create_blueprint_v1():
bp_v1 = Blueprint('v1', __name__)
user.api.register(bp_v1)
book.api.register(bp_v1)
return bp_v1
# app.py(将蓝图注册到app对象中)
from flask import Flask
def register_blueprint(app):
from app.api.v1 import create_blueprint_v1
app.register_blueprint(create_blueprint_v1(), url_prefix='/v1') # 蓝图补充路由的前缀
def create_app():
app = Flask(__name__) # 指定位置信息
app.config.from_object('app.config.setting')
app.config.from_object('app.config.secure')
register_blueprint(app)
return app
Flask之RESTFul API前后端分离的更多相关文章
- Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)
Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享) 点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJK ...
- Restful and 前后端分离---AutoTest newman--postman
http://www.cnblogs.com/zuoshaowei/p/6192863.html https://www.getpostman.com/docs/newman_intro swagge ...
- 全栈的自我修养: 001环境搭建 (使用Vue,Spring Boot,Flask,Django 完成Vue前后端分离开发)
全栈的自我修养: 环境搭建 Not all those who wander are lost. 彷徨者并非都迷失方向. Table of Contents @ 目录 前言 环境准备 nodejs v ...
- Flask前后端分离项目案例
简介 学习慕课课程,Flask前后端分离API后台接口的实现demo,前端可以接入小程序,暂时已经完成后台API基础架构,使用postman调试. git 重构部分: token校验模块 auths认 ...
- Flask & Vue 构建前后端分离的应用
Flask & Vue 构建前后端分离的应用 最近在使用 Flask 制作基于 HTML5 的桌面应用,前面写过<用 Python 构建 web 应用>,借助于完善的 Flask ...
- 前后端分离与 restful api
为什么要前后端分离(优点): PC,APP,PAD 多端适应 单页面应用(Single Page Application)SPA开发模式开始流行 前后端开发职责不清 开发效率问题,前后端互相等待 前端 ...
- 前后端分离开发,基于SpringMVC符合Restful API风格Maven项目实战(附完整Demo)!
摘要: 本人在前辈<从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)>一文的基础上,实现了一个基于Spring的符合REST风格的完整Demo,具有MVC分层结构并 ...
- Flask + vue 前后端分离的 二手书App
一个Flask + vue 前后端分离的 二手书App 效果展示: https://blog.csdn.net/qq_42239520/article/details/88534955 所用技术清单 ...
- 关于flask(前后端分离)的后端开发的小白笔记整理(含postman,jwt,json,SQLAlchemy等)
首先是提醒自己的一些唠嗑: 学会劳逸结合,文档看累了可以看视频,动手操作很关键,遇到问题先动脑子冷静地想,不要跟着步骤都不带脑子,想不出来了再查一查!有时候打出来的代码很虚,但是实践不花钱,实践出真知 ...
随机推荐
- ATTENTION NETWORK分析
1. TensorFlowTrainable类 1 class TensorFlowTrainable(object): 2 def __init__(self): 3 self.parameters ...
- PWA 学习笔记
深入学习网址:https://developer.mozilla.org/zh-CN/docs/Web/Progressive_web_apps 一. 基本介绍 1. 渐进式:适用所有浏览器,因为它是 ...
- [Pyhton]连接MSSQL实例并执行SQL语句
运行环境: 服务器端: MSSQL 2014 Server 2012 R2 程序端: Python 3.7.4 MacOS 10.14.6 CentOS Linux release 7.7.1908 ...
- 大数四则运算之加法运算--------C语言版(未考虑负数)
/* 声明两个字符数组,用于存储大数,声明两个整数型数组便于计算,将字符数组中的元素转换为对应整数存于整数数组中,将低位放在整数数组低位,便于对齐计算 判断是否有进位,计算结果高位先输出,从数组后往前 ...
- drf token刷新配置、认证组件(使用)、权限组件(使用)、频率组件(使用)、异常组件(使用)
目录 一.特殊路由映射的请求 二.token刷新机制配置(了解) 三.认证组件项目使用:多方式登录 1.urls.py 路由 2.views.py 视图 3.serializers.py 序列化 4. ...
- 将Markdown编辑器搬进您的博客-让我们更优雅的书写文章
各位小伙伴们,冷月今天给大家发一波福利.我们都知道markdown编辑器非常的好用,是我们写作的好帮手.这样的一款好用的文章编辑器,我们怎么才能让自己的博客也支持呢,冷月今天来教大家如何将Markdo ...
- 【daily】sql分组,每组取N条
数据准备 -- mysql语法 DROP TABLE IF EXISTS `test_group_type`; CREATE TABLE `test_group_type` ( `id` int(11 ...
- MRAM技术进入汽车应用
在整个地址空间范围内读写各种类型的数据.通常MRAM的操作和时序类似于32位微控制器的规范和时序.与DLFASH相比,当今的非易失性存储器可以接受MRAM设备的性能和吞吐量. 与当今的DFLASH相比 ...
- iMacros 入门教程-基础函数介绍(4)
imacros的TRAY函数用法 这个函数的功能就是隐藏或显示,当执行imacros文件的时候,出现在特定标签的imacros图标 TRAY HIDE 就是隐藏图标 TRAY SHOW 就是显示图标 ...
- springboot 报错 org.springframework.beans.factory.NoSuchBeanDefinitionException:No qualifying bean of type 'com.example.service.HrService' available: 有没有大佬出个主意,我找了一天,刚入门springboot
话不多说先上图,这是启动类的配置,这里配置了@ComponentScan("我的mapper的接口") 接下来是我的项目结构截图 然后是service 的截图,我在这里加了注解@S ...

