此篇为 全栈技能系列 的第13篇。 往期直达: 手机App介绍视频:用QuickTime Player录制,keynote剪辑 手机App介绍视频:用QuickTime Player录制,keynote剪辑 为什么选择Flask,因为接下来要更新深度学习的相关技能了,用到的是python,为了给前端提供api,选择了python的Flask来开发web应用的后端服务,Nodejs不够用了哈。 01 安装Flask 确保已经安装过python,可以用终端输入: python --version 查看python安装与否及其版本,接下来在终端中输入: pip install flask 安装Flask。 02 运行最简单的后端服务 在本机中新建一个学习用的文件夹,然后新建一个app.py文件,输入 启动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./docs/flask/quickstart.html#a-minimal-application 以上为全文。 |
|
来自: Mixlab交叉学科 > 《待分类》