前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Python的Flask和谷歌app Engine来构建一个web app

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

作者头像
HuangWeiAI
发布2020-07-27 15:02:03
1.9K0
发布2020-07-27 15:02:03
举报
文章被收录于专栏:浊酒清味浊酒清味

前言

如果您想在很短的时间内使用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和其他我们需要的库,然后保存文件。需求文件是跟踪您在项目中使用的库的好工具。

代码语言:javascript
复制
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了。这是创建本地环境的最后一步。

代码语言:javascript
复制
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(稍等片刻,直到供应了新项目)

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

本文分享自 Python学会 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档