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

以下是在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日

相关文章

  • opencv之为图像添加边界的方法示例

    下面我将详细讲解 “OpenCV之为图像添加边界的方法示例” 的完整攻略,其中包含两个示例说明。 一、为图像添加边界的基本概念 在OpenCV中,为图像添加边界有时是必须的操作。这些边界被称为图像填充,它们可以在图像周围添加一些额外的像素。填充通常用于在卷积和其他图像处理操作中保留图像边缘上的信息。 为图像添加边界时,我们需要指定填充的像素行数和列数,并且我…

    人工智能概论 2023年5月24日
    00
  • 在pytorch中查看可训练参数的例子

    如果你想查看在PyTorch中定义的可训练参数(Trainable Parameters),可以使用PyTorch中的nn.Module类提供的parameters()方法,该方法返回一个生成器对象,可以遍历模型中的所有可训练参数。 下面是一个示例代码,展示了如何使用parameters()方法查看可训练参数。 import torch import tor…

    人工智能概论 2023年5月25日
    00
  • 使用python自动追踪你的快递(物流推送邮箱)

    下面我来详细讲解如何使用Python自动追踪你的快递(物流推送邮箱)的完整攻略。 1. 前置条件 在开始使用Python追踪快递之前,需要准备以下两个条件: 一个支持邮件推送快递信息的邮箱(比如Gmail等) 你的快递运单号 2. 准备Python环境 在开始之前,需要准备好Python环境。可以通过安装Anaconda、Python编程环境等方式来获取。 …

    人工智能概论 2023年5月25日
    00
  • Go-RESTful实现下载功能思路详解

    Go-RESTful实现下载功能思路详解 简介 在Web应用程序中,下载功能通常是必需的功能之一。Go是一种功能强大的编程语言,使用它实现RESTful API来实现下载功能非常高效、方便和可靠。在本文中,我们将深入讨论如何使用Go-RESTful库实现下载功能。 步骤 本文将介绍三个主要步骤来实现下载功能: 定义RESTful路由 打开文件并将其发送到客户…

    人工智能概览 2023年5月25日
    00
  • 深入理解nginx如何实现高性能和可扩展性

    深入理解nginx如何实现高性能和可扩展性 Nginx 是一个高性能、高可靠性的 Web 服务器和反向代理服务器。在处理高并发网络请求时,它可以同时保持较高的稳定性和扩展性。以下是 Nginx 实现高性能和可扩展性的攻略: 1.事件驱动模型 Nginx 使用了事件驱动的模型,在单个进程中处理多个并发连接,从而避免了每个连接都创建一个新进程或线程的模型。这种模…

    人工智能概览 2023年5月25日
    00
  • Java使用J4L识别验证码的操作方法

    操作方法: 1.首先,需要在pom.xml文件中添加该依赖: <dependency> <groupId>com.j4l</groupId> <artifactId>barcode</artifactId> <version>2.0.3</version> </depe…

    人工智能概论 2023年5月25日
    00
  • 在PyCharm中实现添加快捷模块

    在PyCharm中添加快捷模块有两种方式:通过PyCharm的插件机制安装第三方插件,或者通过自定义模板来实现。 安装第三方插件 打开PyCharm,在菜单栏中选择”File” -> “Settings” -> “Plugins”; 点击”Browse repositories”,在打开的对话框中搜索需要安装的插件; 选择需要安装的插件,并点击”…

    人工智能概论 2023年5月25日
    00
  • 从生成CRD到编写自定义控制器教程示例

    下面是关于从生成CRD到编写自定义控制器的详细攻略: 1. 生成CRD 首先,我们需要通过Kubernetes API来自定义资源并创建CRD。CRD是Custom Resource Definition的缩写,表示自定义资源定义。在Kubernetes中,自定义资源是指我们可以定义和使用的API资源类型,比如我们可以定义一个名为MyResource的自定义…

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