专栏首页浊酒清味如何使用Python的Flask和谷歌app Engine来构建一个web app

如何使用Python的Flask和谷歌app Engine来构建一个web app

前言

如果您想在很短的时间内使用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.3
click==6.7
gunicorn==19.7.1
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
pytz==2017.2
requests==2.13.0
Werkzeug==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(稍等片刻,直到供应了新项目)

本文分享自微信公众号 - Python学会(gh_39aead19f756),作者:Huangwei AI

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-07

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何爬取知乎漂亮妹纸照片

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,Firefox,Sa...

    HuangWeiAI
  • 加速Python列表和字典,让你代码更加高效

    今天,我们将讨论Python中的优化技术。在本文中,您将了解如何通过避免在列表和字典中进行重新计算来加快代码的速度。

    HuangWeiAI
  • 让我们来谈谈python中的prettyprint和pprint

    相信我们都已经通过“Hello World”程序开始了我们的python之旅。在python中,它可以在一行中完成:

    HuangWeiAI
  • PwnAuth——一个可以揭露OAuth滥用的利器

    鱼叉式网络钓鱼攻击被视为企业最大的网络威胁之一。只需要一名员工输入自己的凭证或运行一些恶意软件,整个企业都会受到威胁。因此,公司投入大量资源来防止凭证收集和有效...

    伍尚国
  • 【Rust日报】2020-08-07 无船同志关于Rust未来Generator语法的新尝试

    众所周知,Rust的Generator一直没有稳定,主要原因是Generator仍然有许多设计上的问题没有明确,所以无船同志写了一个名字叫Propane的新cr...

    MikeLoveRust
  • 2017预测:SD-WAN推动物联网发展

    物联网推动SD-WAN的采用 物联网通过设备或系统创造数十亿个新的数据端点,不断地在企业网络中传递越来越多的数据,任何物联网项目的成功的基本要求是所有利益相关者...

    SDNLAB
  • 网页元素居中的n种方法

    根据场景分析提出的一些假设,我们试着去建立对应的模型,下面是分别根据上面的三个场景设计的相关模型。

    丰臣正一
  • Bloom Filter布隆过滤器

    Bloom Filter是1970年由Bloom提出的,最初广泛用于拼写检查和数据库系统中。近年来,随着计算机和互联网技术的发展,数据集的不断扩张使得 Bloo...

    海天一树
  • Visual Studio Code 前端调试不完全指南

    Visual Studio Code (以下简称 vscode) 如今已经代替 Sublime,成为前端工程师们最喜爱的代码编辑器。它作为一个大型的开源项目,不...

    前端博客 : alili.tech
  • SHELL 零起点学习(3)

    高级语言中变量时具有类型的,即变量将被限制为某一数据类型,如整数或字符类型。Shell变量通常按字符进行储存,为了对Shell变量进行算术运算,必须使用expr...

    py3study

扫码关注云+社区

领取腾讯云代金券