如何在sae中设置django,让sae的工作环境跟本地python环境一致

yizhihongxing

以下是在sae中设置Django的完整攻略:

1. 创建Sae应用

首先,在sae上创建一个Python应用,选择Python 2.7版本,并绑定自己的域名。绑定域名后,获取到自己的 SAE AccessKey 和 SecretKey。

2. 配置本地开发环境

在本地创建一个虚拟环境,安装Django和其它需要的包

$ mkdir ~/myproject
$ cd ~/myproject
$ virtualenv env
$ source env/bin/activate
$ pip install django==1.11.9
$ pip install MySQL-python==1.2.5

这里以Django 1.11.9版本为例。MySQL-python是Python 2.x中的MySQL数据库连接驱动,也可以选择其它数据库连接驱动。

3. 创建Django项目

在本地虚拟环境下使用Django的命令行工具创建一个Django项目

$ django-admin.py startproject myproject

创建项目后,将Django项目的根目录myproject和虚拟环境下的env下的Lib/python2.7/site-packages等目录一起打包上传到SAE的/data目录下

$ cd ~
$ tar -cvzf myproject.tar.gz myproject
$ cd env && tar -cvzf env.tar.gz Lib/python2.7/site-packages/
$ cd ~
$ scp -P <port> myproject.tar.gz <username>@<appname>.sae.sinacdn.com:/data/
$ scp -P <port> env.tar.gz <username>@<appname>.sae.sinacdn.com:/data/

其中,为SSH端口号,为SAE AccessKey,为SAE应用名。

上传文件后,进入SAE应用的SSH控制台,解压缩上传的文件

$ cd /data
$ tar -xzvf myproject.tar.gz
$ tar -xzvf env.tar.gz

4. 配置SAE应用

在SAE应用的web.yaml文件中加入以下内容,用于指定WSGI处理器和Python路径:

handlers:
- url: /.*
  script: myproject.wsgi.application

sae:
  python: 2
  wsgi: myproject.wsgi.application
  packages: /data/env/lib/python2.7/site-packages

其中,handlers部分用于处理所有请求,调用myproject.wsgi.application处理;sae部分则设置Python的版本号、WSGI处理器以及自定义Python模块路径。

在SAE应用的数据库管理界面中设置MySQL数据库,并记下用户名、密码、主机、端口、数据库名。

然后,在myproject/settings.py文件中配置数据库

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<db_name>',
        'USER': '<db_username>',
        'PASSWORD': '<db_password>',
        'HOST': '<db_host>',
        'PORT': '<db_port>',
    }
}

替换为数据库名、用户名、密码、主机、端口。

5. 部署Django应用

在SSH控制台中,进入myproject目录,创建一个名为wsgi.py的文件

$ cd /data/myproject
$ touch wsgi.py

在wsgi.py中添加以下内容

import os
import sys

sys.path.insert(0, '/data/myproject')
sys.path.insert(0, '/data/env/lib/python2.7/site-packages')

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

其中,第2、3行将当前目录和Python包目录加入系统路径中,以便于导入Django包和自定义Python模块。第5行设置Django设置模块名,这里是myproject.settings。最后一行调用get_wsgi_application()获取WSGI处理器,这里是使用Django内置的WSGI处理器。

在SSH控制台中启动应用

$ cd /data
$ sae-python27-manage start myproject

在浏览器中访问自己的域名,即可看到Django的“Welcome to Django”页面,说明应用已经成功启动。

至此,Django应用已经可以正常运行在SAE上,与本地开发环境基本一致。

以下是两个在SAE上使用Django的示例:

示例一:SAE上的Django博客

通过实现博客的方式学习Python Web开发(三):在SAE上部署Django

该博客使用Django 2.1.5版本开发,同时使用MySQL数据库,详细讲解了如何在SAE上部署Django项目,并给出了完整的源码和演示地址。

示例二:SAE上的Django云盘

使用Django+SAE开发云盘(一):环境搭建

该项目是一个简单的文件上传和下载应用,使用Django 1.11.6版本开发,通过插件方式连接到SAE的Storage服务,读写文件。文章讲解了如何在SAE上部署Django项目,配置PyCharm开发环境,并给出了完整的源码和演示地址。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在sae中设置django,让sae的工作环境跟本地python环境一致 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • Mongodb批量删除gridfs文件实例

    下面是关于 “Mongodb批量删除gridfs文件实例” 的完整攻略: 1. 准备工作 在开始删除文件之前,我们需要确保已经安装了 MongoDB 数据库和支持 GridFS 的语言驱动程序(比如 Node.js 的 mongodb 库)。 2. 执行删除操作 接下来,我们需要在 MongoDB 数据库中执行删除操作。通常,我们可以用两种方法来删除 Gri…

    人工智能概论 2023年5月25日
    00
  • MongoDB中如何使用JOIN操作详解

    MongoDB 数据库中没有传统关系型数据库中的 JOIN 操作,但可以通过使用 $lookup 管道来实现类似的功能。下面是关于如何使用 $lookup 管道在 MongoDB 中执行 JOIN 操作的完整攻略: 1. 环境准备 在 MongoDB 中执行 JOIN 操作,需要保证以下环境准备就绪: MongoDB 数据库已安装并运行。 在 MongoDB…

    人工智能概论 2023年5月25日
    00
  • Python中Django发送带图片和附件的邮件

    来详细讲解一下Python中Django发送带图片和附件的邮件攻略。 前提条件 在开始之前,我们需要满足以下条件: 一台已安装Python和Django开发环境的电脑; 确保邮件发送功能已经可用,例如正确配置了电子邮件后端; 已经安装Pillow库用于处理图片。 发送带图片邮件 步骤一:编写html邮件模板 包含了需要发送的图片,并且使用cid关键字为此图片…

    人工智能概览 2023年5月25日
    00
  • python实现宿舍管理系统

    Python实现宿舍管理系统攻略 1. 概述 宿舍管理系统是一个可以对宿舍进行管理的项目。它可以记录住宿生的个人信息、住宿信息、缴费情况等,并且可以同时实现对违规宿舍的管理,包括违规记录、惩罚等功能。本文将详细讲解如何使用Python实现宿舍管理系统。 2. 数据库设计 宿舍管理系统需要使用到数据库来存储数据。在设计数据库时,需要考虑到系统所需记录的信息。以…

    人工智能概览 2023年5月25日
    00
  • Python Web程序搭建简单的Web服务器

    我们来详细讲解 Python Web 程序搭建简单的 Web 服务器的完整攻略。本攻略包含以下三个部分: 环境准备 web.py 简介 web.py 搭建 Web 服务器的步骤 环境准备 在开始搭建 Python Web 服务器之前,我们需要事先准备好以下环境: Python 2.x 或者 Python 3.x(建议使用 Python 3.x) 安装 web…

    人工智能概览 2023年5月25日
    00
  • OpenCV+Qt实现图像处理操作

    针对“OpenCV+Qt实现图像处理操作”的完整攻略,我们从以下三个方面来详细讲解: 准备工作: 1.1 安装OpenCV; 1.2 配置Qt Creator; OpenCV+Qt实现图像处理操作: 2.1 打开图像和视频; 2.2 图像处理操作; 2.3 计算机视觉; 示例说明: 3.1 图像二值化; 3.2 图像模糊处理。 1. 准备工作 1.1 安装O…

    人工智能概论 2023年5月25日
    00
  • 如何将maven项目划分为多个模块

    划分Maven项目为多个模块是一个很好的做法,可以提高项目的可维护性和代码的重用性。下面是一个完整的攻略,包括步骤和示例说明: 步骤 创建一个Maven项目 根据项目的功能、业务划分出若干个模块(module) 在项目的根目录下,使用命令行创建模块。例如: shell mvn archetype:generate \ -DgroupId=com.exampl…

    人工智能概览 2023年5月25日
    00
  • php7安装mongoDB扩展的方法分析

    安装MongoDB扩展是PHP开发中常见的需求之一,本篇攻略将详细介绍在PHP7上安装MongoDB扩展的方法以及相关的配置和使用细节。 前置条件 在开始之前,需要确保以下条件已具备: 已安装PHP7及MongoDB服务端 已安装PECL扩展管理工具(可通过命令pecl version检测是否已安装) 安装MongoDB PHP扩展 打开命令行工具(终端或C…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部