我该如何为我的应用创建网页界面?
首先,简单介绍一下背景:我用Python和SQLAlchemy写了一个小应用,差不多是一个改进版的RSS阅读器:它会选择一些用户可能感兴趣的链接,并展示给用户。我已经有了一个非常简单的命令行界面,并且我想象着可以有多种不同的界面:网页、即时通讯、桌面应用等等。
现在我想创建一个简单的网页界面,但我在这方面完全没有经验(除了五六年前做过一个简单的PHP论坛……)。所以我来这里寻求一些建议,看看从哪里开始:
- 有没有好的关于HTML/CSS/JavaScript的教程,专注于让网站看起来好看?我知道w3schools,但我觉得那个教程很糟糕,因为它教你HTML/CSS,但没有告诉你怎么使用它们。
- 我应该使用JavaScript库吗?用哪个库比较好?
- 我应该使用网页框架吗?我猜可能不需要,或者用一个非常轻量级的框架,因为我已经有了一个核心应用和数据库,还有SQLAlchemy,我不想放弃它。
- 还有其他建议吗?
谢谢!
7 个回答
这是一个很常见的有趣错误:上面所有的回答都在讨论用什么技术来做事情……但到底要做什么呢?其实你应该反过来考虑。
我认为,如果你想让你的应用成功,就得确保它能让用户以最自然的方式充分利用它。
所以,我建议你先从用户的角度“讲故事”,想想事情应该怎么发生。可以用纸和笔,或者用一些更高级的线框工具,比如balsamiq mockups。
首先,先规划一下用户的体验应该是什么样的,这样你就能知道哪种技术最适合实现这种体验。
哦,别忘了去看看这个链接。
我建议你使用某种网页框架,这样会让事情变得简单很多。既然你已经会Python了,可以看看Django框架。听说你可以在Django中使用SQLAlchemy,具体可以查看django-sqlalchemy项目。
对于JavaScript的部分,我推荐使用JQuery框架/库。它能大大简化编码,并解决大部分浏览器不兼容的问题。
这个CSS教程似乎能教你一些基础知识。
我建议你先阅读Django教程,然后开始尝试一些东西。对于HTML的内容,不用太担心,你应该能从Django教程中学到足够的知识。先让你的网站在HTML、Django和SQLAlchemy的基础上能正常运行,再考虑JavaScript。谁知道呢,也许你根本不需要JavaScript?
不要试图让你的网站同时好看又好用。在你让网站能正常工作的时候,可以使用简单丑陋的HTML页面。当你想让网站好看时,只需处理静态HTML页面和CSS文件。最后再把这两者结合起来会更简单。
就像这里的其他人一样,我也想说“用我最喜欢的框架,因为我就是用这个……”
我建议你先设定一些小目标,开始做一个简单的网页界面。先让一个简单的东西运行起来,这样你才能理解事情是怎么运作的。
写一个应用程序,让它能对这个网址做出响应,并返回一些内容。
http://localhost:8000/my_links
一旦你理解了实现这个功能所需的一些基本知识,比如你会收到什么请求信息,以及你需要返回给调用者什么内容,你就会明白如何把现有的应用程序和浏览器之间的数据连接起来。
学习 WSGI,因为大多数帮助你构建网页应用的库都在某种程度上使用了这个。
在上面那个页面中,有一个链接我觉得特别有帮助,能帮助你理解这一切,那就是 Ian Bicking 的文章“自制框架”。
当你掌握了这些内容后,你可能会觉得直接处理 WSGI 的低级细节有点麻烦。这时候你可能会想要像 WebOb 这样的工具,它是人们为简化请求/响应过程而设计的一种方便的对象。可以说,它把 HTTP 协议封装起来,而不需要让那些不想了解 HTTP 的人去理解它。
根据你应用的复杂程度,你可能会觉得处理请求、查看路径并分发到多个函数的过程有点繁琐,这时大家都喜欢的框架就会显得很有用。我想到这个时候你应该已经有足够的知识来评估市面上有哪些框架,并判断哪个最适合你的需求和目标。
很多人喜欢 Django,也许你也会喜欢。还有人喜欢 Turbogears、Pylons、bfg、grok、zope 或者 plone。但这里没有人知道你想让你的应用程序做什么。