zoukankan      html  css  js  c++  java
  • 第一个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文件夹,将Python27Libsite-packagesdjangocontribadminstatic下的文件复制到新添加的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:WorkspacePythonHelloDjangosrcHelloDjangowsgi.py"
    10 WSGIPythonPath  "D:WorkspacePythonHelloDjangosrc"
    11  
    12 <Directory "D:WorkspacePythonHelloDjangosrcHelloDjango">
    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 }
  • 相关阅读:
    计算属性computed和watch侦听器
    .gitignore不起作用
    flex 布局
    vue-awesome-swiper
    Chrome截长屏
    JS 数组 foreach 和 map
    for-in 和 for
    边框画的三角形给shadow
    element-UI 表单图片判空验证问题
    Vue 表格内容根据后台返回状态位填充文字
  • 原文地址:https://www.cnblogs.com/hwpayg/p/4633925.html
Copyright © 2011-2022 走看看