用Flask写后端接口

此篇为全栈技能系列的第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文件,输入

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

以上为全文。

原文发布于微信公众号 - 科技Mix设计Lab(Design-AI-Lab)

原文发表时间:2017-11-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏cnblogs

基于.net core实现项目自动编译、并生成nuget包

1624
来自专栏Linyb极客之路

Mysql max_allowed_packet自动重置为1024的情况

前几天在群里有个朋友问到max_allowed_packet被自动重置的问题,于是打算写个文章来描述下,因为遇到这个问题的人不少,但是提到的解决方案几乎没有。

3402
来自专栏Python

linux每日命令(24):Linux 目录结构

对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,...

1372
来自专栏SDNLAB

P4语言编程快速开始

经过前两篇的P4理论介绍,相信大家已经对P4有个基本的了解了,本片文章为大家带来P4语言编程实战。 1、系统环境安装 P4项目的官方文档上都是以Ubuntu为例...

4026
来自专栏北京马哥教育

黑客们会用到哪些Python技术?

学Python最简单的方法是什么?推荐阅读:Python开发工程师成长魔法 Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Pyt...

8078
来自专栏黄希彤的专栏

玩转云文件存储

千呼万唤始出来的 CFS 解决了集群服务的很多困扰多年的问题,实乃居家旅行,负载均衡、弹性伸缩之必备良药。

1.6K4
来自专栏玉树芝兰

如何把 Markdown 文件批量转换为 pdf?

有个朋友提出,希望把目录中的许多 markdown 文件,批量转换为对应名称的 pdf 格式文件。我于是编写了一个 Python 脚本,并且分享给你。如果你有类...

1085
来自专栏哲学驱动设计

性能优化总结(六):预加载、聚合SQL应用实例

    前面已经把原理都讲了一遍,这篇主要是给出一个应用的实例。该实例取自GIX4,比较复杂。 领域模型:     领域模型间的关系,如下: ? 右边模型链的具...

3405
来自专栏大数据挖掘DT机器学习

用python抓取淘宝评论

来自:http://blog.csdn.net/winterto1990/article/details/47983253 在学习python的时候,一定会遇...

9098
来自专栏点滴积累

Ubuntu16.04双网卡主备配置

前几日写了一篇Ubuntu14.04双网卡主备配置,没成想变化总是这么快,今日安装某软件,提示最匹配的ubuntu版本是16.04,作为一个码农能有什么办法,只...

4805

扫码关注云+社区