Python - 开发Web应用程序

时间:2012-03-02 22:55:46

标签: python

我正在尝试使用Python作为后端自学开发Web应用程序。由于我来自C ++背景,我发现难以构建网页(设计/实现)和与之相关的后端代码 - 创建CSS,HTML代码,包括图像,表格等。我读到了http://webpy.org/框架但没有还是用过它。实际上我有点困惑如何使用Python开发一个很棒的UI页面 - 比如页面有多个选项卡,配色方案,下拉框,列表,图形和其他UI组件/小部件 - 以及与之关联的后端代码。

任何人都可以让我知道我们应该走哪条道路,这样可以轻松实现同样的目标吗?我读到了JQuery并且相信在计算世界中有很多可用的工具,但哪些组合最好,并且易于使用。

3 个答案:

答案 0 :(得分:10)

您无法在浏览器中运行python。因此,对于Web开发,它只在服务器端使用。实际上,它的全部目的是强制执行您的业务逻辑并为您的站点生成标记。然后客户端技术(HTML5 +浏览器,Javascript和CSS)接管。

在服务器端,Django现在非常受欢迎。它非常强大,并且背后有一个非常活跃的社区。我建议您查看Django tutorial。对于客户端来说,jQuery非常受欢迎,并且背后有一个巨大的社区。有很多很多教程 - 只是google" jQuery教程"。

如果你对CSS不是很好(听起来你可能不是这样),那么我个人会推荐一个基于网格的CSS框架。它们使得获得专业外观的网站变得更加容易。通过响应式框架,您可以获得准移动启用的额外好处。有一堆他们。包括其中一个原件Grid 960,但又有很多。这里有16个非常好blog post

对于控件/小部件,有几个可供选择。 jQueryUI非常受欢迎。虽然不那么受欢迎,Dojo仍然是一个很好的选择。 ExtJS很好,但不是免费的。这个名单继续...... YUI等等。你可能只想选择一个有良好社区背后的人来学习它。

答案 1 :(得分:2)

我认为这有助于讨论,因为它帮助我在使Python成为网络方面做得很好。

Metalfan,我看到你在聊天时问:

  

是否有任何库使Python像PHP一样工作。我的意思是嵌入   进入像

这样的HTML

你问的是一个模板库来构建html,css,javascript,sql或其他任何东西。我已经搜索了一个工具来做到这一点,并找到了CogCheetah以及谷歌抛出的大部分内容。我受到Django的启发,它给模板处理对象和基本上整个语言的访问权限,而不仅仅是进行宏扩展。 Web2py有一个模块可以做到这一点,我发现它很容易修改或独立使用。我不记得我是否对我正在使用的so I've uploaded the version原版进行了任何修改,所以它应该是开箱即用的。

要从模板生成代码,请包含模板模块,并使用模板(字符串)和上下文(包含本地环境的dict)调用render函数。像这样:

from template import render
import urllib2

environment = dict(
    elements=[1, 2, 3],
    username="mortn",
    session_id="xyz",
    lam=lambda x=0: urllib2.urlopen("http://google.com").read(),
    f=f,
    )

print render(content=html_template, context=environment)

模板看起来像这样:

<html>
 <h1>Hello {{= username }}</h1><br/>
 {{ if session_id=="xyz": }}
 {{   # indentation doesn't matter.. }}
   this isn't printed unless if-statement matches
 {{ else: }}
   instead this would be shown
 {{ pass  # each if/for/while statements (that would 
 {{       # "indent your code"), must end with pass }}
 {{ for e in elements: }}   - {{=e}}
 {{ pass }}
 {{ # demo of looping }}
 {{ if 1: }} 
 {{ for i in xrange(10): }}<br/>{{ pass }}
 {{ pass }}
 {{ # imported function }}
 100 chars of google html get:
 {{ =lam()[:100] }}
 {{ # you can access the whole language with this }}
 {{ =f()}}

....它给出了这个输出:

<html>
 <h1>Hello mortn</h1><br/>
   this isn't printed unless if-statement matches
    - 1
    - 2
    - 3
   <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
100 chars of google html get:
&lt;!doctype html&gt;&lt;html itemscope=&quot;itemscope&quot;itemtype=&quot;http://schema.org/WebPage&quot;&gt;&lt;head&gt;&lt;meta itemprop
you can do whatever

当你看到它与白色间距混淆时,我已经缩短了输出,因为每个{{block生成一个换行符。它可以在template.py模块中编辑,因为它具有符合PEP8的非常易读的代码。

<强> TL; DR: 以下是单个文件中示例代码的链接: http://pastie.org/4776120 和template.py模块:http://pastie.org/4775988

答案 2 :(得分:-5)

首先,检查[w3schools.com] [1],

继续阅读1)HTML,2)CSS,3)JavaScript 4)PHP

如果您真的想快速构建Web应用程序,我建议您选择php over python,因为php专门用于构建动态Web应用程序。