第一个Django项目及部署到Sina App Engine

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文件

 1 Alias /static D:/Workspace/Python/HelloDjango/src/static
 2 <Directory D:/Workspace/Python/HelloDjango/src/static >
 3     AllowOverride None
 4     Options None
 5     Order allow,deny
 6     Allow from all
 7 </Directory>
 8
 9 WSGIScriptAlias /django "D:\Workspace\Python\HelloDjango\src\HelloDjango\wsgi.py"
10 WSGIPythonPath  "D:\Workspace\Python\HelloDjango\src"
11
12 <Directory "D:\Workspace\Python\HelloDjango\src\HelloDjango">
13     Order allow,deny
14     Allow from all
15 </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文件

 1 import sys
 2 import os.path
 3
 4 os.environ[‘DJANGO_SETTINGS_MODULE‘] = ‘hello.settings‘
 5 sys.path.append(os.path.join(os.path.dirname(__file__), ‘hello‘))
 6
 7 import sae
 8 from hello import wsgi
 9
10 application = sae.create_wsgi_app(wsgi.application)

如果需要查看django版本,则注释上面的代码,在index.wsgi中添加

 1 #coding=utf-8
 2 import sae
 3
 4
 5 import django
 6
 7 def application(environ, start_response):
 8     start_response(‘200 ok‘, [(‘content-type‘, ‘text/plain‘)])
 9     s=str(django.VERSION)
10     return s

这样就会打印出django的版本了

如果使用了Mysql,由于SAE上的sql是不能从本地连接的,所以在本地和在SAE上的MySQL连接配置是不一样的,可以考虑在settings.py中做如下配置

 1 debug= not environ.get("APP_NAME", "")
 2 if debug:
 3     #local
 4     MYSQL_DB = "app_lsblog"
 5     MYSQL_USER = "root"
 6     MYSQL_PASS = "root"
 7     MYSQL_HOST_M = "127.0.0.1"
 8     MYSQL_PORT = "3306"
 9 else:
10     import sae.const
11     MYSQL_DB = sae.const.MYSQL_DB
12     MYSQL_USER = sae.const.MYSQL_USER
13     MYSQL_PASS = sae.const.MYSQL_PASS
14     MYSQL_HOST_M = sae.const.MYSQL_HOST
15     MYSQL_PORT = sae.const.MYSQL_PORT
16     MYSQL_HOST_S = sae.const.MYSQL_HOST_S
17
18 DATABASES = {
19     ‘default‘: {
20         ‘ENGINE‘: ‘django.db.backends.mysql‘,
21         ‘NAME‘: MYSQL_DB,
22         ‘USER‘:MYSQL_USER,
23         ‘PASSWORD‘:MYSQL_PASS,
24         ‘HOST‘:MYSQL_HOST_M,
25         ‘PORT‘:MYSQL_PORT,
26     }
27 }
时间: 2024-12-06 10:16:13

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

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

早就听说了Python的大名,随着的编程语言的理解加深,越发觉得动态语言的威力--真大呀. 趁这段时间不忙,我也用Python写了一个应用,并且将其部署到Sina App Engine (SAE).SAE确实是一个好地方,它支持Python,对于开发者,其使用费用几乎为0. 更重要的是,如果我的这个app不会半路夭折,等它长大后,这个平台也能给予足够的支持. 虽然,整个过程都很简单,但是对于一个新手,特别是从传统C#, Asp.net, IIS阵营过来的开发人员来说,什么都是第一次接触.希望我的

django复习--如何建立一个django项目

1.cd到项目文件夹下 2.创建一个django项目:django-admin startproject firstsite(项目名称) 3.若同时安装了2.x和3.x版本的python,则需要在manage.py最上方把#!/usr/bin/env python 改为 #!/usr/bin/env python3 (接下来以此情况为例) 4.创建一个django实例:python3 manage.py startapp firstapp(实例名称)

开始一个django项目

创建一个工程目录: django-admin.py startproject newseite 进入工程目录,运行以下命令,开启服务: python manage.py runserver 接下来,可以通过 http://127.0.0.1:8000/地址访问页面. 可以通过 python manage.py runserver 8080 设置服务监听端口. 如果想要让本地网络访问,可以运行命令: python manage.py runserver 0.0.0.0:8000 开始一个djang

2.2、创建第一个Django项目

2.2.1.创建项目MyOSS 激活django虚拟python环境 $source bin/activate 创建一个web目录 $Mkdir web $Cd web 创建项目 $django-admin.py startproject MyOSS 项目创建完成 进入MyOSS目录 /MyOSS …manage.py …/MyOSS Manage.py 整个web项目管理的文件,会去调用django.core.management中 Execute_from_command_line的命令 使

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

2.第一个Django项目 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步. 2.1.创建第一个Django项目 我们创建一个我们存放Django的工作目录,示例:C:\My Files\Python Projects 在命令提示符窗口进入到刚才创建的目录,运行运行命令: django-admin.py startproject mysite 这样会在你的当前目录下创建一个目录mysi

PyCharm下创建并运行我们的第一个Django项目

PyCharm下创建并运行我们的第一个Django项目 准备工作: 假设读者已经安装好python 2x或3x,以及安装好Django,以及Pycharm 1. 创建一个新的工程 第一次运行Pycharm时,欢迎界面如下: 点击创建新的工程,选择左边面板的Django,填写Location, 以及Application name(我分别填写的是mysite,以及 polls,location填写的mysite相当于你的工程名字) 点击Create,创建项目. 2. 探索项目的结构 自动生成了Dj

Django之真正创建一个django项目

真正创建一个django项目 1 创建Django项目     :new-project 2 创建APP :  python manager.py startapp app01 3 setting 配置 : 配置APP INSTALLED_APPS中加上"app01" 配置静态文件 首先在项目下创建静态文件夹static 然后在setting下添加 STATICFIFLES_DIRS=( os.path.join(BASE_DIR, 'static'), ) 注意一般开始就要配置好st

Sina App Engine(SAE)入门教程(2)-Mysql使用

如果你还没有SAE的账号,请在http://sae.sina.com.cn 注册新用户.具体的注册流程请参见:Sina App Engine(SAE)入门教程(1)在常规的环境下,我们可以通过http://php.sinaapp.com/manual/zh/ref.mysql.php中PHP的原生函数去操作Mysql,但是由于SAE的环境问题,使用了主从分离技术,因此我们对数据库的操纵做了一次封装,当然你也可以继续使用这种方式去操作mysql.你可以如下使用.首先得到数据库连接的主机名,账号,密

Sina App Engine(SAE)入门教程(8)- SaeFetchurl使用

fetchurl是什么? FetchURL是SAE为开发者提供的分布式网页抓取服务,用来同步的抓取http页面,FetchURL针对国内的网络的做了优化,内部有调度系统,尽可能保证用户快速的抓取到目标页面.在SAE上使用FetchURL非常简单,只需要调用sae_std_lib中的几个简单的函数即可. FetchURL是sae初期不支持curl时的替代方案,现在sae已经完全兼容 curl! fetchurl怎么用? 例如我想抓取百度的网页,那么代码如下: <?php $f = new SaeF