第一个Django项目及部署到Sina App Engine
2015-07-09 18:24
471 查看
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文件
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文件
如果需要查看django版本,则注释上面的代码,在index.wsgi中添加
这样就会打印出django的版本了
如果使用了Mysql,由于SAE上的sql是不能从本地连接的,所以在本地和在SAE上的MySQL连接配置是不一样的,可以考虑在settings.py中做如下配置
目前,在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 = "3306" 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, } }
相关文章推荐
- 50款经典 iPhone 开源应用(附代码下载) 分类: ios 2015-07-09 18:23 31人阅读 评论(0) 收藏
- Android常见问题解决
- Android学习之调用Web Service
- iOS内存管理
- iOS打包时achieve文件无法生成
- nagios插件之登陆防火墙实现session监控
- Android中AIDL使用例子
- 用Gradle 构建你的android程序
- Swift开发教程--如何清除模拟器的数据
- 安卓开发黄金搭档:android-studio+Genymotion模拟器
- IOS中修改图片的大小:修改分辨率和裁剪
- listview android:cacheColorHint,android:listSelector属性作用
- Android Binder
- Android:关于声明文件中android:process属性说明
- iOS property 用法
- IOS Protocol与Delegate详解(二)
- 移动端 页面切换方案
- Swift学习笔记系列——(5)函数
- Android的PreferenceActivity中的getPreferenceScreen().removeAll()只删除组件
- 模仿微博信息更新的时间:刚刚,10分钟前,半小时前,一天前