前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Flask写后端接口

用Flask写后端接口

作者头像
mixlab
发布2018-04-17 14:13:42
3.6K0
发布2018-04-17 14:13:42
举报

此篇为全栈技能系列的第13篇。

往期:

技能之用iMovie制作预告片 手机App介绍视频:用QuickTime Player录制,keynote剪辑 利用Github免费制作app介绍主页 技能之H5 技能之AR技术入门 5个用法,关于Gif。 Nodejs全栈之开启https协议 Nodejs全栈之nginx配置文件 技能:Electron开发桌面级应用 手机App介绍视频:用QuickTime Player录制,keynote剪辑 利用Github免费制作app介绍主页 用expo,从0到1 轻松学react native

为什么选择Flask,因为接下来要更新深度学习的相关技能了,用到的是python,为了给前端提供api,选择了python的Flask来开发web应用的后端服务,Nodejs不够用了哈。

01

安装Flask

确保已经安装过python,可以用终端输入:

python --version

查看python安装与否及其版本,接下来在终端中输入:

pip install flask

安装Flask。

02

运行最简单的后端服务

在本机中新建一个学习用的文件夹,然后新建一个app.py文件,输入

代码语言:javascript
复制
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'if __name__ == '__main__':
app.run()

启动app.py文件,终端输入:

python app.py

可以看到终端输出:

* Running on http://127.0.0.1:5000/

通过浏览器打开以上地址,即可看到hello world字样。

恭喜你,已经跨入python的大门了,?。

03

代码注解及自己动手修改例子:

初学一种语言或者库,最好直接在本机成功运行官方或者最简单的例子,然后再逐渐的看懂每一句代码,然后再多尝试其他例子逐渐地根据自己的想象,修改例子,不要急着去翻看繁杂的语言教程,或者库的api文档。

注:上手一门新技术的最好方法

以下部分适合要深入学习,理解python及flask的初学者,修改例子可以根据需要增加下面提到的一些内容进行尝试:

from flask import Flask

#导入 Flask 类

app = Flask(__name__)

'''

创建一个该类的实例,第一个参数是应用模块或者包的名称。如果你使用单一的模块(如本例),你应该使用 __name__ ,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同。

'''

app.debug = True

#开启调试模式,根据需要设置。

@app.route('/')

def hello_world():

return 'Hello World!'

'''

使用 route() 装饰器告诉 Flask 什么样 的URL 能触发我们的函数;这个函数的名字也在生成 URL 时被特定的函数采用,这个函数返回我们想 要显示在用户浏览器中的信息。

'''

@app.route('/hello')

def hello():

return 'Hello World'

'''

换个路径试试,浏览器输入http://127.0.0.1:5000/hello

'''

@app.route('/user/<username>')

def show_user_profile(username):

# show the user profile for that user

return 'User %s' % username

@app.route('/post/<int:post_id>')

def show_post(post_id):

# show the post with the given id, the id is an integer

return 'Post %d' % post_id

'''

要给 URL 添加变量部分,你可以把这些特殊的字段标记为 <variable_name> ,这个部分将会作为命名参数传递到你的函数。规则可以用 <converter:variable_name> 指定一个可选的转换器,比如上面的username及post_id就是变量名,int表示为 integer类型的变量。

'''

@app.route('/login', methods=['GET', 'POST'])

def login():

if request.method == 'POST':

do_the_login()

else:

show_the_login_form()

#HTTP 方法,可以根据需要设置

if __name__ == '__main__':

app.run(host='0.0.0.0',port=8888)

'''

用 run() 函数来让应用运行在本地服务器上。其中 if __name__ == '__main__':

确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。

host='0.0.0.0',让操作系统监听所有公网 IP,成为外部可访问的服务器。

注意,如果是在docker使用,需要app.run中传入配置参数,让操作系统监听所有公网 IP,成为外部可访问的服务器,如

app.run(host='0.0.0.0',port=8888)

port是端口,可以修改为任意端口;

若是docker使用,记得docker要把对应的端口映射到主机。

docker是什么?暂时不清楚,可以留意后续的更新,或自行查阅。

'''

参考文章:

http://docs.jinkan.org/docs/flask/quickstart.html#a-minimal-application

以上为全文。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科技Mix设计Lab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档