TreeFrog Framework 開發入門之HelloWorld

TreeFrog Framework 開發入門之HelloWorld

    搭建好 the TreeFrog Framework 的開發環境後,第一時間閱讀了線上文件,懷著忐忑之心構建了一個 Hello World 。

    官方有一個初級教程,可以參考下。這個教程使用 tspawn 這個 generator 來生成工程模版。tspawn 在生成工程時,預設會根據資料庫表來生成 controller 、model 、 view及其他模版化的目錄和資源。

    我不想用資料庫,僅僅想快速體驗一下。所以跳過了一個步驟,沒有嚴格按照初級教程來做。

    我的體驗會分兩步,第一步先跑起來,看看效果。第二步在第一步的基礎上新增一些工程,最終實現一個檔案伺服器。

    首先開啟之前建立的 TreeFrog 快捷方式,使用 tspawn 來建立模版工程,執行如下命令 :

tspawn new fileserver

    好啦,模板工程構造完成,下圖是 tspawn 生成的目錄結構:

    按照初級教程,需要建立一個資料庫表以便與 Model 關聯起來。我這裡跳過了,先進入 fileserver 目錄,再執行下列命令來生成 controller :

tspawn controller FileServerController

    現在這個工程已經可以編譯並且執行了:

qmake -r "CONFIG =debug"
mingw32-make
treefrogd.exe -e dev

    試試瀏覽器訪問 http://localhost:8800/fileserver ,會看到一個錯誤頁面 “Page Not Found”。不著急,我們來新增一個 controller 和一個 Action 就可以看到變化了。

    當我們訪問 http://localhost:8800/ ,預設會呼叫程式註冊的 controller 的 action :index() ,所以我們要實現這個 action 。

    用 Qt Creator 開啟 fileserver目錄下的 fileserver.pro 檔案,接下來可以新增我們的 controller了。

    在 fileserver/controllers 下面新增 fileservercontroller.h/.cpp 兩個檔案。操作不贅述,上圖:

    然後是程式碼實現。

    手動新增 controller ,按照下面的步驟:

  1.     從(框架自動生成的) ApplicationController 派生一個類
  2.     實現一些 public slots 來作為action
  3.     在標頭檔案中用 T_DECLARE_CONTROLLER 巨集宣告一個 controller
  4.     在實現檔案中用 T_REGISTER_CONTROLLER 註冊 controller

    按照上面的步驟,就可以得到下面的原始碼,先是 fileservercontroller.h :

#ifndef FILESERVERCONTROLLER_H
#define FILESERVERCONTROLLER_H
#include "applicationcontroller.h"
class T_CONTROLLER_EXPORT FileServerController : public ApplicationController
{
Q_OBJECT
public:
FileServerController(){}
FileServerController(const FileServerController &other);
public slots:
void index();
};
T_DECLARE_CONTROLLER(FileServerController, fileservercontroller);
#endif // FILESERVERCONTROLLER_H

    再看 fileservercontroller.cpp :

#include "fileservercontroller.h"
FileServerController::FileServerController(const FileServerController &other)
: ApplicationController()
{}
void FileServerController::index()
{
renderText("Hello World");
}
T_REGISTER_CONTROLLER(fileservercontroller);

    OK ,大功告成,可以編譯執行了:

qmake -r "CONFIG =debug"
mingw32-make
treefrogd.exe -e dev

    瀏覽器訪問 http://localhost:8800/fileserver ,激動人心的時刻來啦:螢幕上出現了 “Hello World” 字樣。這正是我們想要的。

    如果你想體驗完成的初級教程,可以使用 sqlite 來建立資料庫表,最新的 sqlite 在這裡下載

    我們的第一個示例程式結束,這裡面提到的 controller 、 action 概念,可以在
TreeFrog 官網
的文件上檢視學習,用到的一些方法,如renderText,來自 TreeFrog Framework,可以參考線上 API

    這個示例僅僅是個玩具,如果想要用 C 和 Qt 實現一個有用的 web 程式,還需要進一步研究 the TreeFrog Framework。接下來我會給本示例新增一些內容,實現一個簡單的檔案伺服器。