使用 flask-restful 编写 自己的 ai web service
本项目在 win 平台采用 pycharm 编写, 技能与环境要求: python 基础, web 基础知识, python.exe = 3.6+
算法》第四版,操作系统推荐《现代操作系统》
py2 很好的 诠释了 编码 默认编码 的力量
import sys
sys.getdefaultencoding()
实际上 py2.x 中 在 encode 的时候 如果没有 decode 过程 会默认 调用 default encoding 进行解码然后 再 encode
而且 在 win 平台 (gb2312 ?) 与 linux (ascii ?) 平台 默认编码格式 是不一样的
py2 需要特别指定 解码方式 然后 再进行 编码!!!
yum install postgresql postgresql-devel python-devel
首先创建 项目 目录 我的目录 D:\test\flask-api\aiservice, 编写 如下的 Pipfile (使用 pipenv + pycharm)
[[source]]
url = "https://mirrors.aliyun.com/pypi/simple"
verify_ssl = true
name = "aliyun"
[dev-packages]
[packages]
cymysql = "*"
Flask-Cors = "*"
Flask-HTTPAuth = "*"
Flask-SQLAlchemy = "*"
Flask-WTF = "*"
requests = "*"
[requires]
python_version = "3.6"
然后进入 项目目录 执行 cmd 进行 项目依赖包的安装, 接下来就是 漫长的 等待了。。。
d:\
cd D:\test\flask-api\aiservice
pipenv install
然后在pychamr 中打开已经做好环境准备的 项目 aiservice , File --> Open --> 填入项目目录
那么接下来我们进入项目实际开发正题
首先呢,打开项目后,要在项目根目录下 建立项目的 入口文件 aiservice.py
# -*- coding: utf-8 -*-
from flask import Flask
__author__ = 'Frank Li'
app = Flask(__name__)
@app.route('/')
def index():
return 'Welcome to visit!!!'
if __name__ == '__main__':
app.run(debug=True,host='192.168.0.213',port=5888)
项目跑起来了, 快访问试试吧 , 虽然我们以后的工作绝对不止这么一些些,但至少是一个好的开始
正常的 项目 视图函数跟Flask 核心对象的操作 是不会放在 一个入口文件 (aiservice.py) 中的,所以我们应该要将 视图函数 以及 Flask 核心操作 放到一个叫做 app 的目录下
所以我们要在 根目录下创建一个 app 的 python package( 注意不是 directory!!!) 不要眨眼,你会发现突然多了好多层目录 不要惊慌!!! 接下来会一个一个去说的
config 是一个 directory 下面没有明说的 都认作是 python package
app.py 核心对象操作
# -*- coding: utf-8 -*-
from flask import Flask
__author__ = 'Frank Li'
def create_app():
app = Flask(__name__)
app.config.from_object('app.config.secure')
app.config.from_object('app.config.secure')
return app
# 入口文件, 此时 视图函数还没有分离出去,只是把 Flask 核心对象分离出去了
aiservice.py
# -*- coding: utf-8 -*-
from app.app import create_app
__author__ = 'Frank Li'
app = create_app()
@app.route('/')
def index():
return 'Welcome to visit!!!'
if __name__ == '__main__':
app.run(debug=True,host='192.168.0.213',port=5888)
# 利用蓝图分离 视图函数 (虽然这种方式不太好,因为 蓝图是分离模块用的, 后面我会构建一个 红图 Redprint 来支持 视图函数注册 分离)
book.py
# -*- coding: utf-8 -*-
from flask import Blueprint
__author__ = 'Frank Li'
book = Blueprint('book', __name__)
@book.route('/v1/book')
def get_book():
return 'v1 - book'
#---------------------------#
user.py
# -*- coding: utf-8 -*-
from flask import Blueprint
__author__ = 'Frank Li'
user = Blueprint('user', __name__)
@user.route('/v1/user')
def get_user():
return 'v1 - user'
分离后 此时 app.py 应该要有 蓝图注册 视图的 动作
# -*- coding: utf-8 -*-
from flask import Flask
from app.v1.book import book
from app.v1.user import user
__author__ = 'Frank Li'
def create_app():
app = Flask(__name__)
app.config.from_object('app.config.secure')
app.config.from_object('app.config.secure')
app.register_blueprint(book) # 新增
app.register_blueprint(user) # 新增
return app
接下来 我们要仿造 Blueprint 创建属于我们自己的 视图函数分离 (route) 注册器 (register) , 这部分需要参照 蓝图源码,七月老师说钻透 Flask 源码 就神功大成了!!!
我们要创建红图的目的就是为了 使用 Blueprint 而不滥用 Blueprint
其实要弄懂 层层绑定 分离注册来实现 解耦
api
http://t.yushu.im/v2/book/search?q={}&start={}&count={}
安装 nltk 的问题
import nltk
import ssl
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
pass
else:
ssl._create_default_https_context = _create_unverified_https_context
nltk.download("punkt")
我并非一无所获
flask 微电影项目
- 目录结构
使用 flask-restful 编写 自己的 ai web service的更多相关文章
- 编写一个单独的Web Service for Delphi
早段时间看了一篇好文章,对其整理成以下几步 1新建一个SOAP Server Application,在提示输入接口时输入MyHello,把所有文件保存在一个叫Ser的目录下,其中一个包含TWebMo ...
- 编写一个单独的Web Service for Delphi7(步骤)
1新建一个SOAP Server Application,在提示输入接口时输入MyHello,把所有文件保存在一个叫Ser的目录下,其中一个包含TWebModule1的文件保存为main.pas.在M ...
- Restful 和 Jersey介绍(Web Service )
一:REST简单介绍 REST 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之中的一个. REST 中最重要的概念是资源(reso ...
- C#开发和调用Web Service
http://blog.csdn.net/h0322/article/details/4776819 1.1.Web Service基本概念 Web Service也叫XML Web Service ...
- ASP.NET调用Web Service
1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...
- C#之VS2010开发Web Service
一:创建web service vs2010软件默认的framework是4.0版本,所以想创建web服务的时候压根看不到web服务应用程序.网上有人说vs2010的web service 跟wcf合 ...
- (转)Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- C# 调用 Web Service
Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是:通过SOAP ...
- Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
随机推荐
- [go]go环境安装-解决安装包不能访问golang.org问题
安装go和vscode vscode插件列表选择go,安装即可,其他插件暂不安装 手动安装一些vscode配套的调试工具等 直接vscode-go,然后点下面的go-tools就能找到 go get ...
- tensorflow实现线性回归、以及模型保存与加载
内容:包含tensorflow变量作用域.tensorboard收集.模型保存与加载.自定义命令行参数 1.知识点 """ 1.训练过程: 1.准备好特征和目标值 2.建 ...
- js解析后台传过来的json
java ,action public void print(String rs){ PrintWriter out; try { HttpServletResponse response = Ser ...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战
笔记 1.SpringBoot多环境配置介绍和项目实战(核心知识) 简介:SpringBoot介绍多环境配置和使用场景 1.不同环境使用不同配置 例如数据库配置,在开发的时候, ...
- 阶段3 3.SpringMVC·_03.SpringMVC常用注解_1 RequestParam注解
新建param.jsp页面.里面一个a标签. 新建Controller 输出字符串 重新部署 传参数 接收这个username并输出 把username换成name 接收不到. 使用RequestPa ...
- Winform非UI线程更新UI界面的各种方法小结
我们知道只有UI线程才能更新UI界面,其他线程访问UI控件被认为是非法的.但是我们在进行异步操作时,经常需要将异步执行的进度报告给用户,让用户知道任务的进度,不至于让用户误认为程序“死掉了”,特别是对 ...
- monkey详解
Monkey是Android系统自带的一个命令行工具,用户主要是通过adb命令来启动Monkey,Monkey在运行时,会根据命令行参数的配置,生成伪随机事件流,并在Android设备上执行对应的测试 ...
- python-爬虫-selenium和phantomJs
1.selenum:三方库.可以实现让浏览器完成自动化的操作. 2.环境搭建 2.1 安装:pip install selenium 2.2 获取浏览器的驱动程序 下载地址: http://chrom ...
- deepin与win10 设置共享文件
在做预料训练时用的是基于linux环境下的kenlm训练工具,然后当时发现woc? 这这这这训练出来的语言模型居然拖不到win10下使用......当时特别二,就在linux下登录邮箱给自己发邮件23 ...
- 【DSP开发】HyperLink 编程和性能考量
冯华亮/Brighton Feng---Communication Infrastructure 摘要 HyperLink 为两个 KeyStone 架构 DSP 之间提供了一种高速,低延迟,引脚数量 ...