gpt4 book ai didi

javascript - Web 2.0 生态系统/堆栈

转载 作者:太空狗 更新时间:2023-10-29 20:52:52 24 4
gpt4 key购买 nike

作为网站前端开发的新手,我能理解一些东西,比如路由、ORM 等,但我不明白它们是如何结合在一起的。我的理解是,使用 Pyramid/Django 等构建的网站有很多组件:

  1. 模板引擎:用于从代码中抽象出 HTML 的工具。有道理。

  2. SQLAlchemy 等:一个 ORM。很好。

  3. 渲染器。不知道。

  4. JS 库:JQuery 等:除了添加漂亮的效果外,不知道这些有什么用。这如何与模板引擎交互?这如何与整个框架交互?我可以在 Pyramid 中为 jquery 编写代码,还是单独编写 JS,将我的 JS 文件插入我的模板或...?

  5. 表单模板库(formish、formalchemy 等):它们与全局有何关系?他们插在哪里?

我还缺少任何其他重要组件吗?

那么,有人可以帮我解释一下堆栈吗?

最佳答案

1) A templating engine: Something for you to abstract away your HTML from your code. Makes sense.

其中有几个可用。 Mako 尝试在模板中使用许多常见的 Python 习语,以避免学习许多新概念。 Jinja2 类似于 Django,但功能更多。 Genshi 如果您喜欢基于 XML 的模板。

不幸的是,作为整个事物的新手,很难说哪个最容易开始。也许是 Jinja2。

2) SQLAlchemy et al. An ORM. Fine.

是的。

3) A renderer. No idea.

渲染器是一个 Pyramid View 配置选项,它告诉 Pyramid 如果您的 View 返回一个字典,那么它应该被传递给给定的“渲染器”。渲染器设置为使用扩展名称,Pyramid 带有几个内置的: http://docs.pylonsproject.org/projects/pyramid/1.0/narr/renderers.html#built-in-renderers

简而言之,渲染器选项仅仅查看你传递给它的名称,并找到一个匹配扩展名(.mak、.pt、'json'、'string'、.etc)的模板引擎,并渲染字典结果。

在许多框架中,您不会将渲染器指定为配置,而是在 View 中添加一些代码,如下所示:

def somefunc(request):
return render_to_response('/some/template.mak', {})

在 Pyramid 中,你可以做同样的事情:

@view_config(renderer='/some/template.mak')
def somefunc(request):
return {}

后者是一项有用的功能有几个原因:

  1. 当它完全处于配置状态时,您可以覆盖渲染器而无需更改 View 代码逻辑。

  2. 您可以添加多个根据其他条件更改渲染器的配置。

考虑这个示例,它根据 HTTP 请求是否为 XHR(需要 JSON 格式结果的 AJAX 请求,而不是需要模板引擎吐出 HTML 的一般 HTTP 请求)更改渲染器。

@view_config(renderer='json', xhr=True)
@view_config(renderer='/some/template.mak')
def somefunc(request):
# lookup some_dict_data in a db, etc.
return some_dict_data

4) JS libraries: JQuery et al. No idea what use these are except for adding pretty effects. How does this interact with the templating engine? How does this interact with the entire framework? Can I write code for jquery in pyramid, or do I write JS separately, plug in my JS file into my template or...?

JS 库使编写 Javascript 变得更容易。它们在浏览器中与 DOM 交互,除了向可能需要 JSON 格式结果的 Web 应用程序发送 HTTP 请求外,它们与 Pyramid 没有交互。

首先,我建议您完全忽略 Javascript,直到您更加熟悉 HTML、DOM 树,并获得一个仅使用 HTML、CSS 和网络应用程序的网站。

5) Form templating libraries (formish, formalchemy et al) How do these relate to the big picture? where do they plug in?

我强烈建议完全忽略这些,并编写基本的 HTML 表单元素。您是整个 Web 堆栈的新手,如果不先熟悉基础知识,真的没有必要直接跳到 Web 开发的最高级方面。

不过,在编写基本表单之后,您需要的是一个表单验证库,它可以更轻松地验证提交的表单是否包含有效参数。在过去的 PHP 时代,人们会编写数百行遍历表单的 if/else 语句(有些人仍然这样做!ack!)。

现在我们使用表单验证库,可以很容易地声明表单的有效参数。我建议首先使用 FormEncode,因为它很容易使用 just 进行验证。对于 Pyramid,使用 FormEncode 最简单的方法可能是 pyramid_simpleform: http://packages.python.org/pyramid_simpleform/

现在,忽略表单渲染部分,自己在模板中编写 HTML 表单元素,使用 pyramid_simpleform 只是为了简单的 FormEncode 集成。

简而言之,从使用 View 函数和模板显示带有链接的 HTML 页面开始(并使用 URL 调度,对于初学者来说比遍历更容易掌握)。然后添加表单、它们的 HTML 和验证,然后添加 CSS 以开始设置样式。

接下来,您可以从一些基本的 Javascript 和 jQuery 开始,让内容在页面上四处移动,然后逐步通过 AJAX 与网络应用程序交互以获取更多数据。只是不要一次处理太多,应该更容易看出它们是如何组合在一起的。

关于javascript - Web 2.0 生态系统/堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4918575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com