在 Web 开发领域不断发展的当下,开发者们始终在努力寻找更为高效且更具灵活性的工具,用以构建应用。 是一个功能强大的全栈 Web 框架,其目的在于简化 Web 应用的开发流程,并且具备强大的扩展能力与灵活性。本文将会对 的核心功能以及主要特点进行深入探究,同时讲解如何借助它快速搭建现代 Web 应用。
一、什么是 ?
它是一个开源的 Web 框架,将多个优秀技术栈的优点进行了结合,像 的 、Flask 等,还包括 的 Vue.js 等。此框架提供了一种能够快速开发 Web 应用的方式。并且它遵循 MVC(模型 - 视图 - 控制器)设计模式,使得开发者可以把精力集中在业务逻辑的实现上,而无需过多地去操心底层的细节。
的主要特点二、安装
要开始使用 ,你可以通过 pip 安装它:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="box-sizing: inherit;color: rgb(33, 33, 33);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 500;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-style: initial;text-decoration-color: initial;"><code style="box-sizing: inherit;border-radius: 10px;background: rgb(34, 39, 46);color: rgb(173, 186, 199);padding: 1em;display: block;overflow-x: auto;"><span leaf="">pip install TurboGears2</span><br /></code></pre></p>
三、快速上手
以下是一个示例,用于创建简单的 Web 应用。我们会演示怎样构建一个基础的 HTTP 服务器,并且对请求进行处理。
1. 创建 应用
首先,利用命令行工具来创建一个新项目。接着打开终端,然后运行如下命令:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="box-sizing: inherit;color: rgb(33, 33, 33);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 500;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-style: initial;text-decoration-color: initial;"><code style="box-sizing: inherit;border-radius: 10px;background: rgb(34, 39, 46);color: rgb(173, 186, 199);padding: 1em;display: block;overflow-x: auto;"><span leaf="">tg-admin quickstart myproject</span><br /></code></pre></p>
这将创建一个名为的新目录,包含 的基本项目结构。
2. 运行应用
进入项目目录并启动开发服务器:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="box-sizing: inherit;color: rgb(33, 33, 33);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 500;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-style: initial;text-decoration-color: initial;"><code style="box-sizing: inherit;border-radius: 10px;background: rgb(34, 39, 46);color: rgb(173, 186, 199);padding: 1em;display: block;overflow-x: auto;"><span style="box-sizing: inherit;color: rgb(246, 157, 80);"><span leaf="">cd</span></span><span leaf=""> myproject</span><br /><span leaf="">pserve development.ini</span><br /></code></pre></p>
你将看到输出,类似于:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="box-sizing: inherit;color: rgb(33, 33, 33);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 500;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-style: initial;text-decoration-color: initial;"><code style="box-sizing: inherit;border-radius: 10px;background: rgb(34, 39, 46);color: rgb(173, 186, 199);display: block;overflow-x: auto;padding: 1em;"><span leaf="">在 http://127.0.0.1:8080 这个地址上启动服务器。</span><br /></code></pre></p>
3. 访问应用
打开浏览器后,访问 8080 这个地址,你就能够看到相应的欢迎页面,这意味着你的应用已经成功运行了。
四、创建第一个视图
接下来,我们要在某个地方创建一个简单的视图,这个视图会返回一个问候消息。打开//root.py文件,然后进行如下修改:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="box-sizing: inherit;color: rgb(33, 33, 33);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 500;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-style: initial;text-decoration-color: initial;"><code style="box-sizing: inherit;border-radius: 10px;background: rgb(34, 39, 46);color: rgb(173, 186, 199);padding: 1em;display: block;overflow-x: auto;"><span style="box-sizing: inherit;color: rgb(244, 112, 103);"><span leaf="">from</span></span><span leaf=""> tg </span><span style="box-sizing: inherit;color: rgb(244, 112, 103);"><span leaf="">import</span></span><span leaf=""> expose, redirect</span><br /><span style="box-sizing: inherit;color: rgb(244, 112, 103);"><span leaf="">from</span></span><span leaf=""> tg.controllers </span><span style="box-sizing: inherit;color: rgb(244, 112, 103);"><span leaf="">import</span></span><span leaf=""> RootController</span><br /><br /><span style="box-sizing: inherit;color: rgb(244, 112, 103);"><span leaf="">class</span></span><span leaf=""> </span><span style="box-sizing: inherit;color: rgb(220, 189, 251);"><span leaf="">RootController</span></span><span leaf="">(</span><span style="box-sizing: inherit;color: rgb(220, 189, 251);"><span leaf="">RootController</span></span><span leaf="">):</span><br /><span style="box-sizing: inherit;color: rgb(108, 182, 255);"><span leaf=""> @expose(</span><span style="box-sizing: inherit;"><span style="box-sizing: inherit;color: rgb(150, 208, 255);"><span leaf="">'myproject.templates.index'</span></span></span><span leaf="">)</span></span><br /><span leaf=""> </span><span style="box-sizing: inherit;color: rgb(244, 112, 103);"><span leaf="">def</span></span><span leaf=""> </span><span style="box-sizing: inherit;color: rgb(220, 189, 251);"><span leaf="">index</span></span><span leaf="">(</span><span style="box-sizing: inherit;"><span leaf="">self</span></span><span leaf="">):</span><br /><span leaf=""> </span><span style="box-sizing: inherit;color: rgb(244, 112, 103);"><span leaf="">return</span></span><span leaf=""> </span><span style="box-sizing: inherit;color: rgb(246, 157, 80);"><span leaf="">dict</span></span><span leaf="">(message=</span><span style="box-sizing: inherit;color: rgb(150, 208, 255);"><span leaf=""></span></span><span leaf="">)</span><br /></code></pre></p>
然后,创建一个模板文件//index.html,内容如下:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="box-sizing: inherit;color: rgb(33, 33, 33);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 500;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-style: initial;text-decoration-color: initial;"><code style="box-sizing: inherit;border-radius: 10px;background: rgb(34, 39, 46);color: rgb(173, 186, 199);padding: 1em;display: block;overflow-x: auto;"><span style="box-sizing: inherit;color: rgb(108, 182, 255);"><span leaf=""><!DOCTYPE </span><span style="box-sizing: inherit;color: rgb(244, 112, 103);"><span leaf="">html</span></span><span leaf="">></span></span><br /><span style="box-sizing: inherit;"><span leaf=""><</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">html</span></span><span leaf="">></span></span><br /><span style="box-sizing: inherit;"><span leaf=""><</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">head</span></span><span leaf="">></span></span><br /><span leaf=""> </span><span style="box-sizing: inherit;"><span leaf=""><</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">title</span></span><span leaf="">></span></span><span leaf="">TurboGears Example</span><span style="box-sizing: inherit;"><span leaf=""></</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">title</span></span><span leaf="">></span></span><br /><span style="box-sizing: inherit;"><span leaf=""></</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">head</span></span><span leaf="">></span></span><br /><span style="box-sizing: inherit;"><span leaf=""><</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">body</span></span><span leaf="">></span></span><br /><span leaf=""> </span><span style="box-sizing: inherit;"><span leaf=""><</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">h1</span></span><span leaf="">></span></span><span leaf="">${message}</span><span style="box-sizing: inherit;"><span leaf=""></</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">h1</span></span><span leaf="">></span></span><br /><span style="box-sizing: inherit;"><span leaf=""></</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">body</span></span><span leaf="">></span></span><br /><span style="box-sizing: inherit;"><span leaf=""></</span><span style="box-sizing: inherit;color: rgb(141, 219, 140);"><span leaf="">html</span></span><span leaf="">></span></span><br /></code></pre></p>
5. 重新加载应用
保存更改后,重新加载浏览器页面,你将看到:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="box-sizing: inherit;color: rgb(33, 33, 33);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 500;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-style: initial;text-decoration-color: initial;"><code style="box-sizing: inherit;border-radius: 10px;background: rgb(34, 39, 46);color: rgb(173, 186, 199);display: block;overflow-x: auto;padding: 1em;"><span leaf=""></span><br /></code></pre></p>
五、总结
是一个全栈 Web 框架,功能强大且灵活,适合构建复杂的现代 Web 应用。它的开发流程简化,功能丰富,能帮助开发者更高效地实现项目目标。无论是快速原型开发,还是大型应用,它都是值得投资的工具。
如果你正在寻求一种框架,这种框架能够让你轻松地解锁全栈开发的潜力,那么它将是一个理想的选择,它能让你在 Web 开发的旅程中走得更远,也能让你在 Web 开发的旅程中走得更快。 |