在SAE搭建Python+Django+MySQL(基于Windows)
为了与时俱进,工作闲余開始研究Python,刚一接触就被Python这“优雅”的语法吸引住。后来接触到了Django。尽管还没有太深入的研究。但对这样的新概念的WEB开发非常感兴趣,决定尝试用它取代Java开发小的后台程序,边用边学吧!
注:本篇仅仅介绍基础搭建过程,不负责解说。由于刚接触Python我也不懂!
一、SAE使用的Python环境版本号
Python2.7
Django1.27 / 1.4 / 1.5
本地版本号要确定好。须要用到其它的预装模块也要确定好。
(我一開始使用了高版本号的Python和Django,结果出现了一大堆莫名其妙的错误。)
二、SAE注冊、配置
注冊、新建应用略,新建完毕之后在“代码管理”中创建一个代码版本号,SAE同意有多个版本号的代码存在。能够互相切换。
SAE通过SVN来管理Python源码,页面的最以下有源码的SVN地址,是“https://svn.sinaapp.com/<你的app名字>”这种格式,SVN账户password分别为安全邮箱、安全password
SVNclient下载地址http://tortoisesvn.net/downloads.html
根文件夹是以代码版本号为区分,应该仅仅有一个标号为“1”的文件夹,当中仅仅有:config.yaml,index.wsgi两个文件。
在“1”目录下创建Django项目,命令行中输入:
django-admin.py startproject <你的APP名字>
这里会产生两级以你APP命名的路径,将子文件夹及manage.py拷贝出来。变为一级文件夹
此时的根文件夹有config.yaml、index.wsgi、manage.py、<app名字>文件夹
<app名字>目录中有__init__.py、setting.py、urls.py、wsgi.py
三、改动config.yaml、index.wsgi的内容:
config.yaml:
name: <你的APP名字>
version: 1 libraries:
- name: "django"
version: "1.5"
#我使用的是Django1.5
index.wsgi:
import os
import django.core.handlers.wsgi
import sae
os.environ['DJANGO_SETTINGS_MODULE'] = '<你的APP名字>.settings'
application = sae.create_wsgi_app(django.core.handlers.wsgi.WSGIHandler())
四、调试Django
建议使用pycharm作为IDE来开发。很方便。
下载地址:http://www.jetbrains.com/pycharm/
安装SAE在本机的模拟环境。
下载地址:https://github.com/sinacloud/sae-python-dev-guide.git
在dev_server中运行python setup.py install
假设出现“No module name setuptools”,说明缺少setuptools
下载地址:https://bootstrap.pypa.io/ez_setup.py
把它保存下来并运行下面。它会自己主动安装。
改动setting.py中的数据库链接,加入并改动例如以下代码:
import os.path
from os import environ
debug = not environ.get("APP_NAME", "")
if debug:
#LOCAL 当代码执行在本地的时候,链接本地数据库。自行配置
MYSQL_DB = 'app_saepy'
MYSQL_USER = 'root'
MYSQL_PASS = 'admin'
MYSQL_HOST_M = '127.0.0.1'
MYSQL_HOST_S = '127.0.0.1'
MYSQL_PORT = '3306'
else:
#SAE 当代码执行在云平台的时候,链接云数据库,链接用的參数都在sae.const里面
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_HOST_S = sae.const.MYSQL_HOST_S
MYSQL_PORT = sae.const.MYSQL_PORT DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': MYSQL_DB,
'USER': MYSQL_USER,
'PASSWORD': MYSQL_PASS,
'HOST': MYSQL_HOST_M,
'PORT': MYSQL_PORT,
}
}
为了測试我们开放Django内置的admin,改动urls.py和setting.py。
在本地通过命令启动服务,或者通过PyCharm启动
manage.py runserver 8000
应该能够通过localhost:8000来訪问Django程序了。
注意SAE的MySQL貌似出于安全考虑,不同意用Navicat之类的工具訪问。使用syncdb命令同步SAE的数据库也比較麻烦,解决方式通常是在本地用syncdb命令,然后将本地数据库转存为SQL文件。再在SAE的MySQL上运行。这样会方便非常多。
(使用SAE的MySQL之前,记得须要在“服务管理”中初始化数据库。
)
通过SVN上传已经本地配置好的Django项目,不出意外<app名字>.sinaapp.com/admin/应该已经能够訪问,可是管理界面是处于没有没有CSS的状态。
这是Django找不到admin的静态文件所致,有非常多种解决方案,在官方文档中有说明。比較简单的方式能够把admin所用的静态文件复制到"1"以下(<在Django安装路径>\django\contrib\admin\static下的admin目录),通过SVN上传之后就能够了。
在SAE搭建Python+Django+MySQL(基于Windows)的更多相关文章
- Python Web实战:Python+Django+MySQL实现基于Web版的增删改查
前言 本篇使用Python Web框架Django连接和操作MySQL数据库学生信息管理系统(SMS),主要包含对学生信息增删改查功能,旨在快速入门Python Web,少走弯路.效果演示在项目实战最 ...
- 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)
Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...
- python+Django+mysql环境搭建
为什么我的毕业设计还要用到网站啊啊啊啊.什么鬼啊,又要做爱拍拍又要做网站???饶了我啊..我选择狗带.. 网站就用django做吧,毕竟之前做过一个电脑销售网站,希望能借鉴一下经验什么的,不要一切从头 ...
- 搭建Python+Django开发环境
第一步:安装python. 常见的windows系统,直接python网站下载 最新的版本python3.5. python安装好之后,配置好环境变量.使得python和 pip命令能够正常使用. 第 ...
- 在MAC下 Python+Django+mysql配置
今天在搭建Django+mysql环境的时候遇到了一点问题,记录下来. 安装环境:OS X 10.10操作系统,Python 2.7. MySQLdb其实包含在MySQL-python包中,因此无论下 ...
- python+django+mysql配置步骤
安装python 详细步骤见:地址 1. 从 http://www.python.org/download/ 下载最新的python版本 (我用的是python2.6, 当时最稳定的) 2. 然后一路 ...
- Python+Django+Eclipse 在Windows下快速开发自己的网站
一.配置开发环境 我的开发环境是:Python3.3.2 + Django1.5.2 + Eclipse 1.安装Python 下载地址:http://www.python.org/getit/ 安装 ...
- python django mysql配置
1 django默认支持sqlite,mysql, oracle,postgresql数据库. <1> sqlite django默认使用sqlite的数据库,默认自带sqlite ...
- 基于SAE的Python+Django部署
本文主要参考:http://www.cnblogs.com/qtsharp/archive/2012/01/12/2320774.html,另外包括自己的实际操作. 一.申请SAE帐号以及创建应用ya ...
随机推荐
- Spark学习之编程进阶——累加器与广播(5)
Spark学习之编程进阶--累加器与广播(5) 1. Spark中两种类型的共享变量:累加器(accumulator)与广播变量(broadcast variable).累加器对信息进行聚合,而广播变 ...
- HTML5——移动端的点击、拖拽
移动端浏览器不支持mouse事件 https://www.cnblogs.com/joyco773/p/6519668.html https://www.cnblogs.com/yjhua/p/525 ...
- The user specified as a definer ('root'@'%') does not exist 解决方法
mysql> grant all privileges on *.* to root@"%" identified by "."; Query OK, r ...
- vs2017 visual studio2017 密钥 激活码
企业版Enterprise: NJVYC-BMHX2-G77MM-4XJMR-6Q8QF 专业版Professional: KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
- lsb_release No LSB modules are available
lsb_release 提示: No LSB modules are available 执行: sudo apt-get install lsb-core
- 02C++基本语法
基本语法 2.1.1单行注释 // 2.1.2多行注释 /* * */ 2.1.3标识符 C++ 标识符是用来标识变量.函数.类.模块,或任何其他用户自定义项目的名称.一个标识符以字母 A-Z 或 a ...
- Java基础概念语法
Java基础概念语法 注释 单行注释 //行注释说明 多行注释 /* 多行注释说明 */ 文档注释 /** *@author 程序的作者 *@version 源文件的版本 *@param 方法的参数说 ...
- UVA - 820 Internet Bandwidth(最大流模板题)
题目: 思路: 直接套最大流的模板就OK了,注意一下输出的格式. 代码: #include <bits/stdc++.h> #define inf 0x3f3f3f3f #define M ...
- selenium的调用
selenium的调用 制作人:全心全意 selenium调用谷歌浏览器 chrome = webdriver.Chrome() //创建谷歌浏览器对象 url="http://www.ba ...
- lastpass密码管理工具使用教程
现在移动互联网发展异常空气,无论访问哪个平台或者网站必须要注册账号,日子久了就会发现最痛苦的就是记住这些网站的密码.因为我们不可能将所有的网站都是设置同样的的账号密码,因为国内网站用户数据库被泄露的事 ...