新浪云怎么部署 python flask

新浪云怎么部署 python flask,第1张

首先安装python,这个我就不多说了,记得配置好系统的环境变量,python和python包(Scripts目录)都要加入系统的环境变量。

接下来就pip安装flask,windows下的命令为:

$ pip install flask

接下来创建一个文件夹,就是你将来整个工程的文件。通过cmd命令进入到这个文件夹中。(cd命令)

然后在这个文件夹中创建一个python文件,py为后缀的文件。

接下来编辑这个文件(文本编辑器、IDE都可以)

from flask import Flask

app = Flask(__name__)

@app.route('/')

def index():

return '

Hello World!

'

if __name__ == '__main__':

app.run(debug = True)

写入代码就可以简单的启动服务器了,默认根目录下返回“hello,world!”,如何运行的就只需要在cmd中运行

$ python myapp.py

运行成功的话可以看到下图的提示。

访问localhost:5000的时候(默认端口5000,可以通过host参数修改),例如

app.run(debug=True,host='0.0.0.0:5000')

基本上这样完成了flask的基本配置,接下来就是将其放到新浪云SAE上,SAE本身就支持flask框架的部署,但是后期我们需要引入其他的一些第三方的包,因此最好就是讲自己的包放到工程文件中调用。

方法就是在使用pip安装的时候,使用这样子的命令:

$ pip install -t vendor PACKAGENAME

这个样子在本地安装的时候就会将包放在一个vendor文件夹中,然后安装SAE官方的文档,在工程文件中添加一个名为“index.wsgi”的文件,内容为:

import sae

sae.add_vendor_dir('vendor')

from myapp import app

application = sae.create_wsgi_app(app)

这样子基本就完成了,只需要讲文件上传到SAE上就可以完成部署。

SAE上的操作记得在新建应用的时候选择python2.7,然后我用的代码管理方式是git。

接下来的方式就是git的内容了,这里我就不多说,写下几个命令:

将仓库的内容复制到本地

$git clone 你的git仓库地址

创建分支

$git branck 分支名

使用分支

$git checkout 分支名

修改代码

$git add --all

$git commit -a "注释"

$git pust 分支名

(以前都是用svn的所以git还不是特别熟)

部署上传完代码之后就可以好好折腾啦

sae文档

运行环境

基本环境

新浪云 PHP 运行环境目前的 Web 服务器使用的是:

CentOS-6.x

Apache-2.2.x

PHP-5.3.x / PHP-5.6.x

Web 服务器运行在 64 位 Linux 环境下。

Apache 运行在 Prefork 模式下,即每个请求都会对应一个 Apache 进程,请求结束后该进程才能服务于下一个请求。平台通过模块方式扩展了 Apache 和 PHP 的相关功能。

禁用函数和类

出于平台安全性考虑,我们禁用了以下函数和类,禁用的标准主要有四点:

出于对安全性的考虑

出于对资源管理的考虑

不常用的 API

我们提供更好替代方案的 API

禁用的函数:

symlink

link

exec

system

escapeshellcmd

escapeshellarg

passthru

shell_exec

proc_open

proc_close

proc_terminate

proc_get_status

proc_nice

dl

pclose

popen

stream_socket_server

stream_socket_accept

stream_socket_pair

stream_wrapper_restore

mail

mb_send_mail

posix_kill

apache_child_terminate

apache_lookup_uri

apache_reset_timeout

apache_setenv

virtual

socket_create

socket_create_pair

realpath_cache_get

禁用的类:

SQLiteDatabase

SQLiteResult

SQLiteUnbuffered

SQLiteException

沙箱

代码和数据的隔离:每个应用在运行期间,只能“看”到自己的代码和数据,即 A 应用无法访问 B 应用的代码和数据。注意,这里提到的在 Web 服务器上的数据,往往指一些中间处理过程的临时数据,并非最终落地的数据,比如用户上传照片会临时存储到 TmpFS。

连接数的隔离:我们知道,程序写的不好,很容易导致阻塞,并进一步导致连接数的飙升。单个应用过多占用 Apache 连接数,原因往往是多方面的,应用请求外部资源被阻塞是一个最为常见的因素,另外应用页面过大浏览器下载慢也是常见因素之一。公有云平台同一时刻往往运行着大量的应用,如果某一应用出现连接数异常,最直接的后果是整个平台上的所有应用都将陷入瘫痪。新浪云平台目前有设置“应用最大 HTTP 并发连接数”,目前这个值是 500,如果应用平均单个请求处理时长是 100ms,那么该应用每秒的 HTTP 并发连接将可以到达 5000,每天的请求超过 1 亿没有问题。但如果您的应用平均每个请求处理时长 2 秒,那么该应用每秒的 HTTP 并发连接只能到达 250,每天支撑的请求数将在千万。总体而言,尽量迅速处理完请求对应用是有利的,而且也是平台所鼓励的。

内存隔离:目前新浪云平台上对单个 PHP 脚本的处理,设置了 128MB 的上限 (max_memory,ini_set 不可修改),我们认为这个设置是一个相对很高的值,可以说能够满足绝大部分应用的需求。设想一台服务器 8G 内存,如果每个 PHP 处理都消耗 64M 内存,那么该服务器最多只能同时运行 128 个 PHP 脚本。新浪云引入了”应用最大并发内存数“的概念,目前的设置是 4GB。如果应用程序单个请求的内存消耗平均在 16MB,那么可同时运行 256 个请求,这和上面的并发连接数的设定是基本一致的。

CPU 隔离:这主要是通过新浪云的配额系统来达到 CPU 时间的隔离。每个应用都有 CPU 时间消耗的分钟速度限制,避免了某一应用过多非法获取 CPU 资源导致其它应用响应慢的问题。

目前新浪云平台上允许的“单请求最大存活时长”是 300 秒 。

注解

当应用并发超过限制,系统会返回 508 错误,并显示 Connections out of quota。当应用内存占用超过限制,系统会返回 509 错误,并显示 Memory usage out of quota。

环境变量

您可以通过打印 PHP 的全局变量 $_SERVER 来获取跟新浪云相关的环境变量信息,每个环境变量的信息如下:

变量名

说明

HTTP_APPNAME    标志该请求属于哪个应用  

HTTP_APPVERSION    标志该请求对应该应用的哪个版本  

HTTP_ACCESSKEY    该应用访问各种服务资源的帐号  

HTTP_SECRETKEY    该应用访问各种服务资源的密码  

HTTP_APPCOOKIE    一些和 app 管理相关信息  

警告

不要直接打印出 $_SERVER 变量,这样可能会造成应用的 AccessKey 和 SecretKey 的泄露。为了应用的安全考虑,请保护好自己的 AccessKey 和 SecretKey。

常用字体文件路径:

constant SAE_Font_Sun

宋体字体文件路径

constant SAE_Font_Kai

楷体字体文件路径

constant SAE_Font_Hei

文泉驿正黑字体文件路径

constant SAE_Font_MicroHei

文泉驿微米黑字体文件路径

全局函数

is_https()

判断客户端是以 http 还是以 https 的方式连接。

返回:

如果是 https 连接返回 true,否则返回 false。    

新浪云有免费的服务器,我们可以利用这个资源在新浪云上部署自己的网站:

首先进入新浪云;

进入产品=》云应用SAE;

进入了之后再点击进入控制台;

进入控制台之后会出现这个页面,点击创建应用(会弹出一个提示框,点击继续创建);

这时会出现一个部署环境,可以根据自己的需要选择,但是对于初学者建议按照下面的红色框来选择(svg和git会影响后面数据库的上传使用),域名自己取。最后点创建应用;

创建一个版本之后会出现下面的提示,点击上传代码(注意代码的层级关系不要改变),将你的代码打包成.zip结尾的文件,上传;

提示上传成功之后,可以点击编辑代码查看你的代码。注意把你的主页名字改成index.html.


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/762098.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-18
下一篇2023-08-18

发表评论

登录后才能评论

评论列表(0条)

    保存