進入雲應用的共享性mysql數據選項後,下方會出現如何連接mysql資料庫
點擊後會進入Mysql的API使用手冊,這里介紹了關於資料庫的一些預定義常量和一個使用其連接mysql的例子。然而,這並不是最方便的一個方法。
在新浪雲的Classes(我也不知道怎麼叫,簡稱classes)開發文檔中,有一個SaeMysql類。如圖,只需實例化SaeMysql類對象,不到20個字元即可完成資料庫連接。同時下方有同樣便利的函數來對資料庫進行各項常用操作。
下面我們使用Sublime Text來連接一次。
寫好代碼上傳到sae雲後,打開網頁。可以看到的確以多維數組的方式顯示了資料庫內的數據。
B. 如何在新浪雲sae上安裝部署laravel5.1應用並測試資料庫連接
1、創建SAE應用
首先進入新浪雲SAE界面 http://sae.sina.com.cn/ :
點擊「創建新應用」,在創建應用頁面填寫表單,開發語言選擇php 5.6,選中「空應用」,然後點擊「創建應用」:
這樣在管理應用列表新增了一個「Laravel SAE」應用:
接下來我們點擊「Laravel SAE」進入管理應用界面,選擇左側「代碼管理」鏈接上傳應用代碼:
我們選擇使用Git管理代碼,點擊「Git」按鈕,頁面跳轉到Git安裝指南頁面:
通過該頁面我們得知代碼倉庫是 https://git.sinacloud.com/laravelsae/ ,接下來我們就可以按照部署說明上傳代碼到SAE。
2、上傳Laravel項目代碼到SAE
這里我們選擇Github上一個現成的項目 laravel5-on-sae ,該項目針對SAE對Laravel 5.1代碼做了特定修改,我們下載其 項目包 並解壓到本地。進入解壓後的 laravel5-on-sae 目錄,刪除隱藏的文件夾 .git ,新建一個 config.yaml ,編輯其內容如下:
handle:
- rewrite: if (path ~ "^/$") goto "public/index.php"
- rewrite: if(!is_dir() && !is_file() && path~"^(.*)$") goto "public/index.php/$1"
編輯 .gitignore 文件,移除第一行 /vendor (否則使用Git命令忽略該目錄,導致找不到/vendor/autoload.php而報錯)。
編輯 config/app.php ,移除 providers 數組中的如下這行:
App\Providers\ViewComponentServiceProvider::class,
編輯 app/Providers/EventServiceProvider.php 內容如下:
<?php
namespace App\Providers;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
];
/**
* Register any other events for your application.
*
* @param \Illuminate\Contracts\Events\Dispatcher $events
* @return void
*/
public function boot(DispatcherContract $events)
{
parent::boot($events);
}
}
然後在 laravel5-on-sae 目錄下執行如下命令:
git init
git remote add sae https://git.sinacloud.com/laravelsae/
git add .
git commit -am 'laravelsae'
git push sae master:1
最後一條命令需要輸入的用戶名和密碼為安全郵箱和安全密碼,而不是微博賬號和密碼。如已啟用微盾動態密碼,則密碼應該是「安全密碼」+「微盾動態密碼」。
這樣我們就可以成功提交代碼到Laravel SAE應用。
在開始之前還需要在SAE中初始化Memcache,並且在Storage中新建一個域名為 laravel 的domain。
接下來我們在瀏覽器中訪問 http://laravelsae.sinaapp.com/laravel ,頁面顯示如下:
說明代碼部署成功!
3、測試資料庫連接
要在SAE上連接資料庫,首先我們需要點擊左側mysql初始化資料庫:
選擇「共享型MySQL」:
InnoDB目前只對企業開發,所以我們選擇MyISAM引擎,然後點擊初始化資料庫。初始化成功後頁面跳轉到MySQL管理頁面:
SAE中MySQL主機、埠、用戶名及密碼都用常量表示,我們在代碼中也要使用這些常量對資料庫進行設置,當然 laravel5-on-sae 這個項目已經為我們做好了設置,甚至配置了讀寫分離:
這里我去將 prefix 配置設置為 '' ,即不使用任何數據表前綴。
接下來我們對資料庫進行測試,還是在MySQL管理頁面我們點擊「管理MySQL」,頁面會跳轉到MySQL資料庫管理頁面,實際上是一個phpMyAdmin頁面:
在phpMyAdmin中我們創建一個數據表 posts 並插入兩條記錄:
接下來我們在項目代碼中 routes.php 新增一條路由:
Route::get('database/test','DbController@test');
然後創建控制器 DbController ,編輯其內容如下:
<?php
namespace App\Http\Controllers;
use DB;
class DbController extends Controller{
public function test(){
$posts = DB::table('posts')->get();
dd($posts);
}
}
然後提交該代碼到SAE項目:
git add .
git commit -m 'test'
git push sae master:1
在瀏覽器中訪問 http://laravelsae.sinaapp.com/database/test
C. django在sae怎麼用資料庫
"在Django項目的setting.py文件中將資料庫配置部分改成以下內容:"
try:
import sae.const
except Exception, e:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': sae.const.MYSQL_DB, # Or path to database file if using sqlite3.
'USER': sae.const.MYSQL_USER, # Not used with sqlite3.
'PASSWORD': sae.const.MYSQL_PASS, # Not used with sqlite3.
'HOST': sae.const.MYSQL_HOST, # Set to empty string for localhost. Not used with sqlite3.
'PORT': sae.const.MYSQL_PORT, # Set to empty string for default. Not used with sqlite3.
}
}