Sina App Engine简称SAE,是个比较好的网站托管平台,目前说是全面免费,其实就是每个人分配很小的资源配额,在一定的使用范围内不用消耗云豆(SAE计费方式),对于个人学习和研究足够了,同类的还有GAE(google app engine)以及BAE(baidu app engine),gae身在国内就不用想太多了,除非爱折腾,bae也还不错,不过要用就要花钱,最低的配置只要几毛钱一天,也还算便宜。当然,如果资金富裕或者流量到了一定程度,可以考虑云服务器。

目前,在SAE上部署了一个Django项目,步骤记录如下:

打开eclipse,选择创建一个PyDev Django Project
输入项目名称,选择Interpreter
进入Django Settings
这里可以设定数据库类型以及配置,我这里选择mysql,并且由于我的root用户没有设置密码,所以留空,如果设置了密码,则需要填入密码
这样一个Django项目就建立起来了,因为部署到apache时候需要样式,所以在src下添加static文件夹,将Python27\Lib\site-packages\django\contrib\admin\static下的文件复制到新添加的static文件夹中,更改httpd.conf文件
 Alias /static D:/Workspace/Python/HelloDjango/src/static
<Directory D:/Workspace/Python/HelloDjango/src/static >
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory> WSGIScriptAlias /django "D:\Workspace\Python\HelloDjango\src\HelloDjango\wsgi.py"
WSGIPythonPath "D:\Workspace\Python\HelloDjango\src" <Directory "D:\Workspace\Python\HelloDjango\src\HelloDjango">
Order allow,deny
Allow from all
</Directory>
 
SAE:
SAE使用svn上传文件
checkout后,将上面项目的src下的文件夹都复制到签出的文件夹下的版本1中
目前sae下的django版本最高为1.5,如果需要1.8,则需要自己把1.8版本的django文件夹上传到sae中去,修改config.yaml
libraries:
- name: "django"
  version: "1.5" 
需要注意空格
修改index.wsgi文件
 import sys
import os.path os.environ['DJANGO_SETTINGS_MODULE'] = 'hello.settings'
sys.path.append(os.path.join(os.path.dirname(__file__), 'hello')) import sae
from hello import wsgi application = sae.create_wsgi_app(wsgi.application)
 
如果需要查看django版本,则注释上面的代码,在index.wsgi中添加
 #coding=utf-8
import sae import django def application(environ, start_response):
start_response('200 ok', [('content-type', 'text/plain')])
s=str(django.VERSION)
return s
这样就会打印出django的版本了
如果使用了Mysql,由于SAE上的sql是不能从本地连接的,所以在本地和在SAE上的MySQL连接配置是不一样的,可以考虑在settings.py中做如下配置
 debug= not environ.get("APP_NAME", "")
if debug:
#local
MYSQL_DB = "app_lsblog"
MYSQL_USER = "root"
MYSQL_PASS = "root"
MYSQL_HOST_M = "127.0.0.1"
MYSQL_PORT = ""
else:
import sae.const
MYSQL_DB = sae.const.MYSQL_DB
MYSQL_USER = sae.const.MYSQL_USER
MYSQL_PASS = sae.const.MYSQL_PASS
MYSQL_HOST_M = sae.const.MYSQL_HOST
MYSQL_PORT = sae.const.MYSQL_PORT
MYSQL_HOST_S = sae.const.MYSQL_HOST_S DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': MYSQL_DB,
'USER':MYSQL_USER,
'PASSWORD':MYSQL_PASS,
'HOST':MYSQL_HOST_M,
'PORT':MYSQL_PORT,
}
}

第一个Django项目及部署到Sina App Engine的更多相关文章

  1. Python Flask 在Sina App Engine (SAE)上安家

    早就听说了Python的大名,随着的编程语言的理解加深,越发认为动态语言的威力--真大呀. 趁这段时间不忙,我也用Python写了一个应用,而且将其部署到Sina App Engine (SAE).S ...

  2. 如何创建一个Django项目

    Django 软件框架 软件框架是由其中的各个模块组成,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发. MVC简介 MVC框架的核心思想是:解耦,让不同的代码块之间降低耦合,增强代码的 ...

  3. 发布一个Django项目

    一.部署环境准备,准备python3和虚拟环境解释器,virtualenvwrapper 1.修改python3的环境变量 PATH=/opt/python36/bin:/usr/local/sbin ...

  4. 玩转Django2.0---Django笔记建站基础十二(Django项目上线部署)

    第十二章 Django项目上线部署 目前部署Django项目有两种主流方案:Nginx+uWsGI+Django或者Apache+uWSGI+Django.Nginx作为服务器最前端,负责接收浏览器的 ...

  5. 搭建第一个django项目

    django是python做web最为强大和全能的后端框架,不会django的python如一条咸鱼... 所以开始学习django框架. 首选得在python中下载django 下载命令: pip ...

  6. Python开发入门与实战2-第一个Django项目

    2.第一个Django项目 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步. 2.1.创 ...

  7. 创建第一个Django项目

    第一个Django项目 命令行下使用如下命令创建一个名为"mysite"的Django项目: django-admin startproject mysite 这将会在当前位置创建 ...

  8. Django之真正创建一个django项目

    真正创建一个django项目 1 创建Django项目     :new-project 2 创建APP :  python manager.py startapp app01 3 setting 配 ...

  9. 使用pycharm创建自己的第一个django项目

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制. ...

随机推荐

  1. Oracle 导入本地dmp文件 详细操作步骤

    以下操作均在命令行窗口中进行 /*连接数据库*/ C:\Users\hqbhonker>sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Prod ...

  2. leetcode Contains Duplicate python

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  3. C++から広がり

    泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库.所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能 ...

  4. Python的maketrans() 方法

    描述 Python maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标. 注:两个字符 ...

  5. mybatis之动态SQL

    <if>的使用 如果第一个if不成立的话可能会出现where and的语法错误,解决方法是在外层加<where>标签,此时如果以and和or衔接where的话会被删除. < ...

  6. Java中print、printf、println的区别(转载)

    printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行 System.out.p ...

  7. android http同步请求

    1.界面 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too ...

  8. SQL Server 2012学习笔记 1 命令行安装

    setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION=install /PID=748RB-X4T6B-MRM7V-RTVFF-CHC8H /FEATU ...

  9. 数组有没有 length()这个方法? String 有没有 length()这 个方法?

    1.数组中有length属性. 2.String有lenth()方法.

  10. UVa1585 Score

    #include <stdio.h> int main(){    int T, O, score;    char str[81], *p;    scanf("%d" ...