就如同题目
我想问的是很基础的问题
事情是这样的
我是网页开发的初学者
这学期我上了一门课有教Javascript跟Python
最近公布了期末专题的题目
就是用Python写server side
用Javascript写client side
制作一个Web Application
我看去年作品有像关键字查节目表、线上乒乓球等等
没有其他任何提示跟要求
可是我们老师课堂上也只有讲讲语法而已
所以作为一个初学者
我对Python的理解只停留在
"在command line输入Python语法 产生对应结果"
完全没办法想像专题该如何完成以及Python网页开发的流程和架构
所以希望开发经验丰富的各位
可以为我介绍整个网页开发的流程和架构
举些我有在网络上看到的东西
jQuery, AJAX, JSON, CherryPy, Django,
Google App Engine(好像有人说code 要deploy到这里之类的)
可以告诉我这些东西在网页开发中扮演那些脚色吗?
详细怎么使用我相信我可以自己学好
毕竟我也是有累积了各种语言的coding经验
不过现在就是缺了一个"大局观"
到底每一层的东西要怎么分工、怎么连结在一起、怎么做出一个互动性网页
希望好心人可以给我一个完整的概念
指引我一条路QQ
非常感谢
作者:
carylorrk (carylorrk)
2014-11-09 10:23:00不知道你的程度很难说明耶...你知道什么叫 HTML/CSS 吗HTTP request/response 呢?如果都不知道的话,建议你去看 web_design 置地文或是跑一遍 w3schools tutorial(虽然很烂)
我知道HTML 我也有写过PHP网页 我有数据库的概念CSS我也用过 那篇置底文我大致都懂 也用过大部分现在是不知道Python跟做网页有何干还有那些工具(framework?)在整个架构负责哪部分
有写过PHP就很好懂了,Python负责server端就像你在写PHP一样,会有server执行你写的PHPserver遇到request就产生对应的html回去给client所以Python要负责的就是根据request做对应的处理后产生对应的html回传,例如要对数据库处理,或进行运算的部分都是由Python完成的
跟着django走吧,你会觉得其实跟你写过的PHP差不多重点是你写过的PHP是MVC架构的
如果只是小型应用 选cherrypy吧 django 太肥 XD
作者:
carylorrk (carylorrk)
2014-11-10 02:27:00PHP大多只是让 HTTP server (ex:Apache/Nginx)先处理过HTTP request 再呼叫 PHP code,然后 PHP 内部 lib 又处理了一些事,你才可以直接写 PHP handler function然后取得 request 的一些资料(像是用 $_GET取得 queryparameter),并且回传 HTML,这些 HTML 又由 PHP Lib和 HTTP server 包装成 response 传回 client 端。Python 看你是要自己处理 TCP connection 还是用内建的http.serve 都是很底层的方式。再来就是用 HTTP server或是 cherrypy 这种来做比较强大的 HTTP 处理。注意这里不是说两者等价 XD前面都是在处理 HTTP protocol 的抽象化,Django 则更多琢磨在网站程式架构的软工上面。最大的部分就是MVC,像是 URL routing、HTML template、 database model 等软件架构方便你撰写大型网站。不过当你写游戏的时候这些东西可能并不是很适合。你可以看看 Django 的 tute会更有感觉,再来自行判断需不需要 Django 的帮助。再来就是你 Client 端到底熟悉吗?知道如何使用 JS 操作 DOM 做一些效果或 check 吗?如果会的话我想 JQuery概念上应该不会太难。如果不熟悉就到 tute 的网站仔细看一遍,等学完基本的程式语法及DOM操作后,一定会提到 AJAX。其实这个名字已经跟原本不太符合了,不过现在简单来说就是由你的JS程式向 server 发起 request(而非由browser)。这样的好处是当你取得 response 后可以由 js 来处理并 update部分的网页内容,可以避免整页重整的闪烁问题。前面一直提到 response,通常 response 都是 HTML 页面但是当用了 ajax,你的 response 可以只回传一些资料,再由 js 处理并加入 html 当中。这里就要讲到资料的serialization。一般资料在不同程式语言的内存layout一定会不同。像是 Python 的 Object 和 JS 的 object显然差很多。serialization 就是把资料的表达方式规格化。这种规格化可以是 binary (前32bit放 first field等),或是人类理解的 text。XML 和 JSON 就是属于后者他们规范了一些常见的资料形态(integer,string,array)的文字表达方式,让不同程式、储存媒介都可以了解。这样你就可以在 python 把资料 serialize 后放入 respons再由 JS deserialize 得到资料来处理。前端现在很流行的还有像是 backbone、angular等架构,等你了解这些基本概念后再去看会觉得很舒服(?)XD现在基本上你提到的几个 component 都串联起来了,最后一个是 GAE。 GAE 基本上你可以想象他是一个帮你架好HTTP server,灌好环境(python、library、database)的一台 server。所以你只要上传程式就可以直接变成网站。不过比较特别的是你要注意他‘灌’的那些环境可能跟一般不太一样,所以你需要好好看一遍他有哪些东西可以用我这辈子第一次写网站(国中用 frontpage 拉的除外)就是 Django + GAE + Google map 和 FB 的 js api。了解第一次写要串联一定很痛苦XD 遇到问题先写看看试看看就对了。有的时候远比看一堆资料还来得有用!PS. 我对游戏部分不熟,所以可能要看其他版友的经验了还有,等你实际写过后会发现我讲的很多是简化甚至错误的,这里只是用比较易懂的方式讲解。也有可能是我本来概念就不好啦,毕竟一辈子也没写过几次网页 XD
非常谢谢你愿意花时间回了这么详细QQ我今天看了很多资料 在看你说的东西有比较懂了!被你一说我才发现我好像写过client端的Javascript当时应该就是Server端的部分有人用Python写好了所以我才没有知觉XD 现在我要来认真检视一下哪个framework比较适合我想做的东西了 超感谢你的解惑!!
作者:
carylorrk (carylorrk)
2014-11-13 15:43:00事实上 server 端用什么语言,包括 PHP,都可以啦!只是想说一开始写 PHP 普遍过于依赖嵌入功能。并没有说PHP 没办法达到什么功能或多不好之类的XD