前言

近日,笔者利用空闲时间写了一个简单的在线预约系统,使用的工具包括Python 3.5.1 和 Django 1.9.5 。早就有听说Django响亮的口号,“The web framework for perfectionists with deadlines”。这次自己亲自尝试了过后,发现果然名不虚传,清晰简洁的支持文档,方便的API接口,都无一例外的吸引了我。

既然是一个在线系统,那么肯定绕不开服务器部署的问题。我选择了方便的新浪云作为后端服务器。原本以为会比较顺利,没想到里面细节设置还是比较多的。在这里,笔者记录下这些细节设置,也算是一个比较基础的新浪云入门设置教程了吧!

准备工作

首先,保证你的系统在本地(127.0.0.1:[default port | 8000])测试无误。

关于笔者的系统的一些基本信息:

后端:Python 3.5.1

框架:Django 1.9.5

数据库:SQLite

在部署之前我曾经担心过,新浪云支不支持Python 3.5呢?支不支持Django 1.9?好像新浪云的云应用手册上面写了仅支持Python 2.7,那是不是意味着无法部署呢?其实并不是这样的,我们使用的是新浪云的容器(container)的功能,相当于是一个存放区域,可以存放任何形式的应用程序。这一点后面会讲到。

确认了你的系统信息之后,就要开始准备一些配置文件了,我们需要准备以下文件:

runtime.txt

requirements.txt

Procfile

(请保证命名一致)

runtime.txt

如果你想要指定你想要使用的Python版本,你可以通过在你的应用的根目录下创建一个 runtime.txt 文件,在里面写上你要使用的Python版本。内容格式如下:

python-3.5.1

requirements.txt

容器云在构建应用的时候自动执行特定的命令来安装所有的第三方依赖包,所以你需要在 requirements.txt 文件中指定你有哪些依赖。内容格式如下:

django==1.9.5

这个有个小问题,如果我有若干个第三方依赖库,应该如何定义?行尾需不需要分号?这个语法在文档里没有说明,笔者也没有尝试。如果有了解的请留言,谢谢!

关于requirements.txt格式问题,请看评论。 23/5/2016

Procfile

这个文件将告诉云端服务器,如何运行你的系统。内容格式如下:

web: python manage.py runserver 0.0.0.0:5050

注意:Django服务器默认监听的端口是127.0.0.1:8000,这会导致新浪云应用程序的运行实例收不到任何请求,所以,在云端开启服务器的时候,你必须显式地告诉服务器,监听在0.0.0.0这个接口上,默认端口设置为5050。这一点很关键!

最后,我们会用到git命令行进行代码的上传,请确保你的机器上安装有git命令行工具。

开始部署

首先,在本地运行你的Python服务器。可能是因为之后在上传代码和配置云端,服务器生成镜像的时候,远程服务器和本地服务器需要有链接。如果不在本地启动,会提示错误,生成镜像失败。开启一个终端,进入应用程序根目录,然后执行:

python manage.py runserver 0.0.0.0:5050

然后,开启另一个终端,进入应用根程序目录,依次执行以下代码:

git remote add sae [新浪云给你生成的git仓库链接]

git add .

git commit -am "make it better"

git push sae master:1

这样之后,我们就已经

创建了一个远程仓库,以后的每一次push都会自动的存放到这个仓库中;

检测了代码是否发生变化;

开始上传代码;

不出意外的话,这个时候需要你输入 安全邮箱 和 安全密码 了,不要输错了。

部署成功

上传成功之后,稍等片刻,你就可以登录你的新浪云管理账号,前往 应用 - 容器管理 中,查看 状态 了。理论上来说应该是“运行”字样。

这里有一个小插曲,在走通了之前的所有步骤,并且没有报错的情况,我等待了超过1小时,发现自己的两个实例的 状态 依旧是“处理中”。这很是奇怪。没辙了,只能够提交工单,联系客服。后来才知道,原来正好那段时间他们在做系统升级。所以,有的时候,该调戏客服的时候,还是要大胆行动的。

Weiming

2016.4.21

新浪云python示例_在新浪云上部署Django应用程序相关推荐

  1. 新浪云python示例_新浪SAE部署python项目

    SAE实际上就是个多节点的虚拟主机,跟云主机差不多,只不过SAE的节点比一般的云主机要多,把网站程序布署在SAE上比自己用独立的服务器稳定性和性能要高很多.将自己用python开发的博客项目放在SAE ...

  2. Python进阶(三十七)Windows7使用nginx+apache部署django项目

    文章目录 一.前言 二.nginx安装 三.初识fastcgi 一.前言 Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 目前国内各大门户网站已经部署了n ...

  3. Asp.Net Web Api 部署------在云服务器IIS上部署Web Api程序

    Asp.Net Web Api 部署------在云服务器IIS上部署Web Api程序 本人Web Api程序框架选择的是.Net 5.0 一.在服务器上安装运行时RunTime,.Net 5 运行 ...

  4. python示例_带有示例的Python功能指南

    python示例 Python函数简介 (Introduction to Functions in Python) A function allows you to define a reusable ...

  5. python 示例_带有示例的Python字典update()方法

    python 示例 字典update()方法 (Dictionary update() Method) update() method is used to update the dictionary ...

  6. python 示例_带有示例的Python File write()方法

    python 示例 文件write()方法 (File write() Method) write() method is an inbuilt method in Python, it is use ...

  7. python 示例_带有示例的Python文件关闭属性

    python 示例 文件关闭属性 (File closed Property) closed Property is an inbuilt property of File object (IO ob ...

  8. python 示例_带有示例的Python date timetuple()方法

    python 示例 Python date.timetuple()方法 (Python date.timetuple() Method) date.timetuple() method is used ...

  9. python 示例_带有示例的Python date isocalendar()方法

    python 示例 Python date.isocalendar()方法 (Python date.isocalendar() Method) date.isocalendar() method i ...

最新文章

  1. 公司--As Imp的写法
  2. GoldenGate技术架构(二)
  3. k8s/01开启云原生之门(Mooc)
  4. php获取当前月月初至月末的时间戳,上个月月初至月末的时间戳
  5. Android setColor
  6. TCP的三次握手过程与四次挥手
  7. AngularJS学习(一)
  8. 云原生 CI/CD 框架 Tekton 初体验
  9. [linux]查看文件编码和编码转换
  10. Oracle日期函数
  11. java ee jsp程序_JavaEE程序设计及项目开发教程(JSP篇)
  12. Windows7自带截图工具无法保存图片的修复办法
  13. 从电商到软件市场,阿里双十一战火蔓延
  14. Evevt Loop 事件循环
  15. 一键删除qq空间说说
  16. 六大云计算厂商南山论剑,收下这封英雄帖!
  17. linux 网桥防火墙,linux透明防火墙(网桥形式).doc
  18. 如何设置Office Word2003的一级与二级标题
  19. **遇到“Cannot create file “不要慌**
  20. Pytorch:NLP 迁移学习、NLP中的标准数据集、NLP中的常用预训练模型、加载和使用预训练模型、huggingface的transfomers微调脚本文件

热门文章

  1. QGIS Server使用记录
  2. .NET/C#中对自定义对象集合进行自定义排序的方法
  3. 网络安全系列之七 网站提权
  4. 在创建ArcGIS Server10.5的站点时,系统提示创建‘System/publishingToolsEX.GPServer’失败(转)...
  5. 小目标 | DAX高级实践-Power BI与Excel联合应用
  6. How to install sougoupinyin on Debian/Ubuntu.
  7. I.MX6 android 源码下载
  8. Delphi - 新语法介绍之For In
  9. php自动导入,PHP自动导入类
  10. c# 获取ajax数据,c# asp.net jQuery AJAX 从 MySQL 中获取数据