Web编程教程

时间:2009-08-01 13:28:39

标签: python

我是一名有各种语言和平台工作经验的程序员,但我缺乏任何Web开发经验(除了PHP生成的一些非常基本的HTML)。

我正在寻找关于Linux下的Web编程基础知识的教程。我对apache配置和服务器维护不太感兴趣,我很清楚,但是使用现代技术实际构建了一个网站。我熟悉python,但我会很好地处理任何脚本语言。

你有什么建议吗?你能告诉W3Schhools tutorials吗?

一堆谢谢,

乌迪

6 个答案:

答案 0 :(得分:5)

利用您的Python知识,您可能会发现像Django这样的教程很有用。它足够现代,可以在Google App Engine中使用。

还可以尝试另一个Python Web框架TurboGears tutorial。这将为您提供(现代)Web编程的不同角度。

Wikipedia上找到介绍和许多指向其他框架的内容。

答案 1 :(得分:5)

这是一个相当广泛的问题。你必须要知道有一个很多的潜在答案,这里已经给出了正确的答案。而且你必须意识到,无论你选择什么教程,它都是你做出的平台决定。这是因为网络(应用程序)开发是一个复杂的事情,可以在各个层面(特别是在MS世界之外)解决。

  • 我对你提到的 W3Schools 没有足够的了解,但乍一看,它们看起来会教你许多基本的前端技术:HTML ,XHTML,Javascript,CSS等。这不错,会为你提供坚实的基础。但是,Web开发通常不会在这个级别上完成,因为对于大型应用程序而言,它太繁琐且不灵活。而且你会完全错过后端/数据库技术。

  • 然后有平台(我猜这是大多数)有一个模板方法。您可以在HTML文件中混合使用HTML和编程代码(Python,Perl,PHP,...),然后由引擎处理该页面和业务逻辑,以生成用户界面和事务的最终HTML数据库的代码。 Django和TurboGears是这方面的着名Python代表,Ruby on Rails可能是目前最大的名字。但是还有很多其他的(Scala/Lift怎么样?),所以值得花点时间看看你最喜欢哪一个。他们通常在数据库处理方面做得很好。在UI方面,您仍然可以更改页面。

  • 在这种情况下,有些平台试图从嵌入代码的HTML转向纯粹的 programmatical 方法。您只需编写代码并使用给定平台的特定API。以某种方式“编译”您的项目将生成您必须在运行时环境中部署的所有必要内容。我认为Google's GWTEclipse RAP就是这样的方法,如果你认为,在Java中有梦想和呼吸,这可能适合你。

  • 当您需要类似桌面的用户界面时,浏览器中的页面更改(Web体验中最具破坏性的部分)不再足够好时,另一种方法很有趣。解决这个问题的方法是创建“胖Web客户端”,内置大量交互逻辑,通常是在Javascript中,并让它们与服务器后端交互,仅用于使用Ajax,REST进行基本数据传输或RPC协议。客户技术的候选人是例如qooxdooDojo。在服务器端,您仍然可以使用您熟悉的任何技术(从RoR到Servlet等)。如果我有我的选择,我会选择qooxdoo作为前端,Erlang/CouchDb选择后端。

您已经特别询问了教程,我没有提到很多。我想要做的就是你选择的任何东西,你很可能会在这项技术上花费相当多的时间和精力,因为它们都很深,并且会坚持一段时间。在评估期间,您还将检查给定平台的教学材料(不要忘记在线视频 - 这些日子它们很大),但这不可避免地具体。 AFAICS,没有对网络编程的“一般性介绍”。

答案 2 :(得分:0)

Ruby on Rails对于快速发展非常有趣。它很干净,很整洁,它可以让你专注于数据库和前端等重要的事情。

有大量的RoR教程。有大约两百Railscast个关于主题的教程视频。他们也非常深入。

还有很多地方可以在您当前的应用上寻求帮助。 APIDock非常适合查找方法用法以及Rails的不同部分如何工作。您也可以考虑使用freenode IRC并进入Ruby聊天室:#ruby。

希望这有用!

答案 3 :(得分:0)

好吧......最重要的是完全抽象你的输出机制(这对你来说甚至可能显得微不足道,但实际情况是,太多人不遵守这条规则,太少的教程强调这一点),所以落后一个简洁的API你有一些渲染引擎(打赌它用于HTML,XML,JSON或者其他什么),最有可能使用模板......这是基于请求的 Web应用程序的基本方面之一(这是我对桌面应用程序的实际差异)并且被任何更好的框架覆盖......使用MVC架构是下一步......几乎所有服务器语言都有大量的MVC框架可以为你做很多工作。 ..和MVC非常适合基于请求的应用程序...业务逻辑和输出生成之间的分离几乎完美......可伸缩Web应用程序的关键点是业务逻辑的实现,通常总是涉及< strong>数据库 ...这也是你要做的事情必须要经常工作......创建好的HTML模板是一项很糟糕的工作,但是我认为一旦掌握了它就相对容易......不需要提出超级创造性的解决方案和新的接近,对我而言,造型和外观是可替换的...设计一个好的UI,以最有效的方式暴露你的功能,而不是实现它,甚至使它看起来更加困难......

在你的位置,我不会深入研究CSS,除非你真的想要设计页面(找别人去做。甚至是HTML模板。严肃地说,你会学会非常讨厌,特别是如果你试图让它在IE7或更低版​​本中运行)。而是尝试生成rockolid语义结构良好的HTML(有利于搜索引擎优化和可访问性(请查看progressive enhancement))并学习JavaScript。看看一些好的框架... jQuery,Ext ......无论如何......不要在这里重新发明轮子......

除此之外,haxe可能对您有用......许多有用的图书馆 haxelib ......

好吧,希望有帮助...;)

格尔茨

back2dos

答案 4 :(得分:0)

有一些资源来学习HTML,javascript和CSS,这就是你要求的。 w3schools是一家来自挪威的小公司,并不总是非常好的文章,但可以作为快速参考。

我会推荐以下两个

还有HTTP,大多数人都没有真的 grok。理解HTTP的一种好方法是将REST作为一种架构风格。 Joe Gregorio创建了一系列精彩的文章来逐步实现Web服务。

希望它有所帮助。

答案 5 :(得分:0)

如果您认为测试很重要,您可能会对遵循TDD(测试驱动开发)方法感兴趣 - 因此,学习如何测试Python Web应用程序与学习如何编写Python Web应用程序一样重要......

我编写了一个从零开始的教程,旨在同时教授Python Web开发和TDD。它涵盖了使用Selenium进行基于浏览器的测试以及单元测试。

http://www.tdd-django-tutorial.com/

欢迎提出意见和建议!