Flask基础-(部署)

栏目: Python · 发布时间: 6年前

内容简介:user.py文件login.py文件主文件:
a.代码模块化,不同功能的模块,划分成不同的分类,降低各功能之间的耦合度
b.蓝图:用于实现单个应用的视图、模板、静态文件的集合。
c.蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关联的功能
复制代码

2.蓝图实例

user.py文件

from flask import Blueprint
# 创建蓝图
users = Blueprint('user',__name__)

@users.route('/user')
def user():
    return "User Page"

复制代码

login.py文件

from flask import Flask,Blueprint

# 创建蓝图
logins = Blueprint('login',__name__)

@logins.route('/login')
def login():
    return "Login Page"

复制代码

主文件:

from flask import Flask

# 导入蓝图对象
from login import logins
from user import users

app = Flask(__name__)

@app.route('/')
def hello_world():
    return "Hello World!"


#注册蓝图,第一个参数logins是蓝图对象,url_prefix参数默认值是根路由,如果指定,会在蓝图注册的路由url中添加前缀。
app.register_blueprint(logins,url_prefix='/')
app.register_blueprint(users,url_prefix='/')

if __name__ == '__main__':
    print(app.url_map)
    app.run(debug=True)

复制代码

3.部署

部署方式:nginx+gunicorn+flask

1.安装gunicorn :pip install gunicorn

指定进程和端口号: -w: 表示进程(worker)。 -b:表示绑定ip地址和端口号(bind)

命令:gunicorn -w 4 -b 127.0.0.1:5001 运行文件名称:Flask程序实例名

4.RESTFUL风格

a.REST是设计风格而不是标准。是指客户端和服务器的交互形式。我们需要关注的重点是如何设计REST风格的网络接口
b.REST特点:
 具象的:一般指表现层,要表现的对象就是资源。比如,客户端访问服务器,获取的数据就是资源。比如文字、图片、音视频等
 表现:资源的表现形式。txt格式、html格式、json格式、jpg格式等。浏览器通过URL确定资源的位置,但是需要在HTTP请求头中,用Accept和Content-Type字段指定,这两个字段是对资源表现的描述。
 状态转换:客户端和服务器交互的过程。在这个过程中,一定会有数据和状态的转化,这种转化叫做状态转换。其中,GET表示获取资源,POST表示新建资源,PUT表示更新资源,DELETE表示删除资源。HTTP协议中最常用的就是这四种操作方式。
c.RESTFul架构
每个URL代表一种资源;
客户端和服务器之间,传递这种资源的某种表现层;
客户端通过四个http动词,对服务器资源进行操作,实现表现层状态转换。
复制代码

ps:1 每个URL代表一种资源,2. get post delete put分别代表增删改查 3 看URL就能知道代表那种资源

5.怎样设计符合RESTful风格的API

a.域名
将api部署在专用域名下:http://www.example.com/api/
b.版本
将API的版本号放在url中:http://www.example.com/app/1.0/info
c.路径
路径表示API的具体网址。每个网址代表一种资源。 资源作为网址,网址中不能有动词只能有名词,一般名词要与数据库的表名对应。而且名词要使用复数。

错误实例:
http://www.example.com/getGoods
http://www.example.com/listOrders
正确示例:
#获取单个商品
http://www.example.com/app/goods/1
#获取所有商品
http://www.example.com/app/goods

d.使用标准的HTTP方法

GET     SELECT :从服务器获取资源。
POST    CREATE :在服务器新建资源。
PUT     UPDATE :在服务器更新资源。
DELETE  DELETE :从服务器删除资源。
示例:
#获取指定商品的信息
GET http://www.example.com/goods/ID
#新建商品的信息
POST http://www.example.com/goods
#更新指定商品的信息
PUT http://www.example.com/goods/ID
#删除指定商品的信息
DELETE http://www.example.com/goods/ID

e.过滤信息
如果资源数据较多,服务器不能将所有数据一次全部返回给客户端。API应该提供参数,过滤返回结果。

#指定返回数据的数量
http://www.example.com/goods?limit=10
#指定返回数据的开始位置
http://www.example.com/goods?offset=10
#指定第几页,以及每页数据的数量
http://www.example.com/goods?page=2&per_page=20

f.状态码
服务器向用户返回的状态码和提示信息,常用的有:
200 OK  :服务器成功返回用户请求的数据
201 CREATED :用户新建或修改数据成功。
202 Accepted:表示请求已进入后台排队。
400 INVALID REQUEST :用户发出的请求有错误。
401 Unauthorized :用户没有权限。
403 Forbidden :访问被禁止。
404 NOT FOUND :请求针对的是不存在的记录。
406 Not Acceptable :用户请求的的格式不正确。
500 INTERNAL SERVER ERROR :服务器发生错误。

g.错误信息
一般来说,服务器返回的错误信息,以键值对的形式返回
{
    error:'Invalid API KEY'
}
h.响应结果
i.其他
服务器返回的数据格式,应该尽量使用JSON,避免使用XML
复制代码

以上所述就是小编给大家介绍的《Flask基础-(部署)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Writing Apache Modules with Perl and C

Writing Apache Modules with Perl and C

Lincoln Stein、Doug MacEachern / O'Reilly Media, Inc. / 1999-03 / USD 39.95

Apache is the most popular Web server on the Internet because it is free, reliable, and extensible. The availability of the source code and the modular design of Apache makes it possible to extend Web......一起来看看 《Writing Apache Modules with Perl and C》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码