前言

如果您想在很短的时间内使用Python构建web应用程序,那么Flask是一个非常好的选择。Flask是一个小而强大的web框架。它也很容易学习和简单的代码。

在本教程中,我将向您展示如何使用API构建一个包含一些动态内容的简单天气应用程序。本教程是初学者的一个很好的起点。您将学习如何从api构建动态内容并将其部署到谷歌云上。

最终产品可以在这里看到:

http://weatherv2-220201.appspot.com/

要创建天气应用程序,我们需要从开放的天气图请求一个API密钥。免费版允许每分钟60次通话,这对这个应用程序来说已经足够了

我们将采取的步骤如下:

第一步:安装Flask

第二步:构建应用程序结构

第三步:使用API请求创建主应用程序代码

第四步:使用Jinja、HTML和CSS为应用程序创建2个页面(主页面和结果页面)

第五步:在本地电脑上部署和测试

第六步:部署在谷歌云上。

1、安装Flask

我们将使用一个虚拟环境来构建这个项目。但是我们为什么需要一个呢?

使用虚拟环境,您可以为每个项目创建一个特定的本地环境。您可以选择要使用的库,而不会影响您的电脑环境。当您在笔记本电脑上编写更多项目时,每个项目将需要不同的库。对于每个项目使用不同的虚拟环境,您的系统和项目之间或项目之间就不会发生冲突。

在WeatherApp文件夹中创建一个requirements.txt文件,其中包括Flask和其他我们需要的库,然后保存文件。需求文件是跟踪您在项目中使用的库的好工具。

Flask==0.12.3click==6.7gunicorn==19.7.1itsdangerous==0.24Jinja2==2.9.6MarkupSafe==1.0pytz==2017.2requests==2.13.0Werkzeug==0.12.1

安装需求及其依赖项。你现在准备好建造你的WeatherApp了。这是创建本地环境的最后一步。

pip install -r requirements.txt

2、构造App结构

创建两个Python文件(主文件)。和两个文件夹(静态与子文件夹img,模板):

3、使用API请求(后端)创建主应用程序代码

设置好结构后,就可以开始编写应用程序的后端代码了。Flask的“Hello world”示例只使用了一个Python文件。本教程使用两个文件帮助您熟悉如何将函数导入主应用程序。

py是将用户路由到主页和结果页面的服务器。py文件创建一个带有API的函数,该函数根据所选城市检索天气数据。该函数填充结果页面.

下一步是在开放天气图上申请一个免费的API密钥:

4、使用Jinja、HTML和CSS创建页面(前端)

这一步是关于创建用户将看到的内容。

HTML页面weather和结果是后端main.py将路由到的页面,并给出可视化结构。CSS文件将带来最后的效果。本教程中没有Javascript(前端是纯HTML和CSS)。

这是我第一次使用Jinja2模板库来填充HTML文件。令我惊讶的是,它是多么容易带来动态图像或使用功能。绝对是一个很棒的模板引擎。

5、本地部署和测试

在此阶段,您已经设置了环境、结构、后端和前端。剩下的唯一事情就是启动你的应用程序并在本地主机上享受它。

使用您的Web浏览器(Chrome、Mozilla等)访问cmd上建议的localhost链接。你应该会看到你的新天气应用程序在你本地的笔记本上:)

6、部署在谷歌云上

最后一步是与全世界分享你的应用程序。需要注意的是,有很多使用Flask构建的web应用程序的提供商。谷歌云只是众多云中的一个。这篇文章不包括其他的一些,比如AWS, Azure, Heroku…

要在谷歌云上部署您的应用程序,您需要1)安装SDK, 2)创建一个新项目,3)创建3个本地文件,4)在线部署和测试。

按照谷歌的说明安装SDK连接到您的谷歌云账户,创建一个新项目并保存项目id(稍等片刻,直到供应了新项目)

参考​:本文省去了一些具体步骤代码,详情请阅读原文:

https://medium.com/free-code-camp/how-to-build-a-web-app-using-pythons-flask-and-google-app-engine-52b1bb82b221

如何查看jinja2模板的上級_如何使用Python的Flask和谷歌app Engine来构建一个web app...相关推荐

  1. python如何在没有环境的电脑上执行_没安装python的电脑可以运行python写的程序吗 python语言编写的程...

    py2exe 能够把 Python script 转换成可以在windows上独立执行的(即不需安装Python)的exe程序(加上其它必需的运行时函数库). -- 摘自百度知道 py2exe能够把P ...

  2. windows上的python能否在unix上使用_怎么用python在Windows系统下,生成UNIX格式文件

    在Windows下换行时,有两个字符:回车(/r)和换行(/n).但在Linux下,只有一个换行(/n)可使用unix2dos和dos2unix命令进行格式的转换: 参数: -k 保持输出文件和输入文 ...

  3. python 打开excel并在屏幕上呈现_如何用Python打开Excel文件显示其内容?

    要在默认应用程序中打开文件,可以使用import os file = "C:\\Documents\\file.txt" os.startfile(file) 这将在与文件扩展名关 ...

  4. python excel 复制行_如何使用python将一个excel文件按行复制到另一个excel文件

    我按以下方式读取excel文件:import xlrd import openpyxl book = xlrd.open_workbook("file.xlsx") sheet = ...

  5. python excel 复制行_如何使用Python将一行Excel工作表复制到另一个工作表

    请参阅python excel库xlrd(用于excel阅读)/ xlwt(用于excel写入) http://www.python-excel.org/ 例如(阅读)(from this): imp ...

  6. sas模拟试验构建线性模型_在sas上构建一个有角度的Web应用程序

    sas模拟试验构建线性模型 The SAS platform is unparalleled in its capability to deliver analytics across the wor ...

  7. python的flask框架显示柱状图_使用Python的Flask框架,结合Highchart,动态渲染图表...

    服务端动态渲染图表 参考文章链接:https://www.highcharts.com.cn/docs/dynamic-produce-html-page 参考文章是使用php写的,我这边改用pyth ...

  8. angular 渐进_如何使用Angular构建渐进式Web应用

    angular 渐进 介绍 (Introduction) Progressive web apps are web applications built with technologies that ...

  9. dump文件分析工具_使用这个 Python 工具分析你的 Web 服务器日志文件 | Linux 中国...

    导读:这个 Python 模块可以以多种格式收集网站使用日志并输出良好结构化数据以进行分析. 本文字数:3262,阅读时长大约:4分钟https://linux.cn/article-12512-1. ...

最新文章

  1. 防止email被抓取的两种方法(js和css)
  2. C++primer习题--第1章
  3. php防错处理,更好的PHP错误处理
  4. 字符串:2.BF算法(普通模式匹配算法)
  5. 用fileupload处理文件上传
  6. cocos creator基础-(十三)cc.Loader使用
  7. 百度之星 1004 Labyrinth
  8. AWT事件处理机制 --Java
  9. Arduino测量误差数据的处理——莱特、格拉布斯准则剔除异常数据
  10. c语言编程绝对质数,c语言求绝对素数
  11. 手机APP身份证识别
  12. WiFi 2.4G和5G国家及信道分布
  13. [Hive SQL] 实现分组排序、分组topN
  14. 5G时代下的人工智能发展
  15. 《Unity Shader入门精要》彩图版免费分享~~~~~
  16. 3.Linux文件系统
  17. C语言游戏: 俄罗斯方块(Tetris)@兼谈程序优化方法 [源码+exe下载]
  18. 前端:使用BootStrap搭建一个简单的网页
  19. jqGrid subGrid配置 如何首次加载动态展开所有的子表格
  20. 局域网通信软件MTalk

热门文章

  1. Adaboost(自适应提升树)算法原理
  2. C# Datagridview完整攻略
  3. delphi查找对话框
  4. 图解远程版本库开发周期 —— Git 学习笔记 22
  5. RTSP再学习 -- Hi3516A RTSP实例 分析
  6. MQTT再学习 -- 漫谈MQTT协议
  7. UNIX再学习 -- 文件I/O
  8. kegra:用Keras深度学习知识图
  9. 加密货币与智能合约的隐私 (二): 混音器和ring签名
  10. 区块链学堂(7):Geth 搭建私有网络-实战