在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: 1libraries:- 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.constMYSQL_DB = sae.const.MYSQL_DBMYSQL_USER = sae.const.MYSQL_USERMYSQL_PASS = sae.const.MYSQL_PASSMYSQL_HOST_M = sae.const.MYSQL_HOSTMYSQL_HOST_S = sae.const.MYSQL_HOST_SMYSQL_PORT = sae.const.MYSQL_PORTDATABASES = {'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上傳之后就能夠了。
轉載于:https://www.cnblogs.com/claireyuancy/p/6860670.html
總結
以上是生活随笔為你收集整理的在SAE搭建Python+Django+MySQL(基于Windows)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery源码 DOM加载
- 下一篇: CSDN 厦门大学线下编程比赛第一题:求