现在的位置: 首页 > 综合 > 正文

创建你的第一个TurboGears 2.1应用

2013年08月15日 ⁄ 综合 ⁄ 共 2829字 ⁄ 字号 评论关闭
文章目录

1、创建工程目录

在安装完成TurboGears 2.1之后,进入已经安装好的TG21虚拟环境。

TG21扩展了paster命令行工具,提供了一系列的命令用于创建、修改TG21的项目。在本文中会涉及到一小部分paster命令,你可以通过paster --help查看全部命令。

下面我们开始创建一个TG21的工程,首先我们要创建这个项目。你可以在任意目录中创建这个工程,前提是你已经加载了TG21的虚拟环境。

$ paster quickstart

paster的quickstart命令会创建一个基本的TG21工程目录,你可以在这个基础上创建自己的TG21工程。如果你只是用paster quickstart,那么会提示你输入工程的名称,以及python包的名称。这是我们的第一个TG21应用,按照惯例我们给它起名叫helloworld。

Enter project name: HelloWorld
Enter package name [helloworld]:
Would you prefer mako templates? (yes/[no]):
Do you need authentication and authorization in this project? ([yes]/no):

……

这样我们就创建了一个名为HelloWorld的工程,并且在工程目录中已经配置好了相应的目录以及文件。我们先来看一下目录的结构。

$ cd HelloWorld

HelloWorld目录中有一个setup.py文件,其中有一段描述了应用的依赖于哪些第三方软件包。quickstart命令只会在工程中添加一部分软件包,在这里你需要自己将其他的软件包加入进来。

我们运行下面一条命令,TG21系统会自动判断你的工程依赖于哪些软件包,并且会自动下载并安装在你的虚拟环境中。

$python setup.py develop

如果你刚配置好TG21并且这是第一次创建工程,那么你会看到setup.py下载并安装了一些附加的软件包。如果你已经创建过一个工程,那么会提示你相关的软件包已经被安装过了。

2、创建数据库

大部分的WEB应用程序都会用到数据库,我们在前面创建HelloWorld工程的时候选择了要使用认证机制,这里我们也需要一个存放用户和授权的地方。在运行应用程序之前,你要确保数据库已经创建并且初始化过了。下面的命令通常情况下只需要运行一次。

paster setup-app development.ini

运行这条命令后,会提示你在数据库中已经创建了一些表。

这里我们先简单介绍一下 “paster setup-app” 命令是如何执行的。默认情况下,TurboGears 2.1使用SQLite数据库,存储在devdata.db文件中。你可以在工程目录中用ls命令看到这个文件。命令行参数中的development.ini说明了数据库使用哪种数据库驱动。在 helloword/web_setup.py中有一段代码添加了一些初始的表和数据。 “paster setup-app” 命令最后会调用该文件中的 “setup_app” 函数。

关于TurboGears 2.1的setup命令还有一个要注意的,paster的setup命令会带有一个配置文件的参数,并且会运行你的工程目录中的websetup代码。这样你就可以用setup-app命令创建表,并且在表中插入一些初始化的数据,你还可以做一些自定义的初始化工作。如果你看一些你用quickstart命令创建工程的时候命令行的输出,就会看到一个websetup的Python脚本。在这个脚本中,你会看到只有一个叫做setup_app的函数,这个函数当你执行paster setup-app的时候就会被调用。在这个函数中,你可以对自己的应用程序做一些必要的初始化工作,通常情况下是添加一些基本的数据用于在应用程序安装完成后就可以马上运行看到结果。

注意:如果这是你第一次使用你的应用程序,并且在用quickstart创建工程的时候你已经确定要使用权限管理的功能,那么你必须用setup-app创建相应的数据库。

$ paster setup-app development.ini

这条命令会使用你在development.ini文件中配置的数据源创建数据库。默认情况下是一个SQLite的数据库文件。除了创建数据库之外,setup-app命令还会执行你在{工程名}.websetup:setup_app中定义的初始化语句。

如果你用quickstart创建工程,并且指定要使用认证机制,那么setup-app命令会创建一个基本的用户、组、授权,用于示范。这些代码你也可以在 {工程名}.websetup:setup_app中找到。这些代码也展示了怎样在运行setup-app指令时自动的添加新的数据。

3、运行服务器

这个时候你的应用程序已经可以使用了,我们已经做好了运行服务器的准备。进入工程目录,然后运行下面的指令:

$ paster serve development.ini

然后你可以通过浏览器打开 http://localhost:8080/ ,就可以看到一个欢迎页面。

如果你想让服务器具有自动重载的功能,那么需要在启动服务的时候加入--reload的参数。

$ paster serve –reload development.ini

你也可以在任何一个地方运行paster命令,但是要通过绝对路径的方式给出development.ini文件的目录。

自动重载的功能往往用在调试应用的时候,当你的Python文件修改后会自动重新加载整个工程,让你能够很快看到修改后的结果。

如果你看一下quickstart命令创建的文件,你会看到里面没有很多关于运行的信息。如果你想看一下欢迎页是如何显示出来的,下面是一个简单的说明:

  • development.ini 文件包含了应用的配置信息。
  • helloworld/controllers/root.py 文件包括了控制器的代码,他创建了欢迎页所需要的数据以及一些示例数据。
  • helloworld/templates/index.html 文件是turbogears用于展示欢迎页的模板。这个模板由root控制器指定并显示。这是一个标准的XHTML文件,有自己的命名空间。
  • helloworld/public/ 目录存放的是用于显示的静态文件,包括图片、JavaScript脚本、CSS文件等。

你可以在 development.ini 文件中修改web服务器监听的端口:

[server:main]
...
port = 8080

把端口从 8080 改为 80,你就可以让TurboGears的测试服务器监听标准的web端口,就像一个真正的web服务器那样。

如果你需要paster服务程序监听你主机上的所有IP地址,那么你需要修改一下[server:main]段,把host修改为0.0.0.0:

[server:main]
...
host = 0.0.0.0

抱歉!评论已关闭.