web开发基础
DESCRIPTION
web 开发的基础知识,对于希望了解Web开发全貌的初学者有参考价值TRANSCRIPT
Web 开发基础 ( 一 )蔡啸 2011/1/17
提纲 Web 基础知识
http 协议 , 请求响应模型 浏览器端开发
html/css/dom javascript dojo
服务器端开发 python django
Web 基础知识 五层网络协议
物理
层
数据
链路
层
网络
层
传输
层
应用
层(
HTTP
)
We build our apps on top of this.
Web 基础知识 What is web app?
Software which is built upon Internet, and based on HTTP protocol
Famous web app? Gmail Google Maps Facebook Web QQ
Web 基础知识 HTTP 请求响应模型
Web 基础知识 HTTP 协议 (RFC2616, HTTP 1.1) 支持五种类型的方法:
GET POST PUT DELETE HEAD
浏览器端开发 HTML(hypertext markup language)
对文档进行结构化描述的标记语言 历史:
1999 HTML 4.01 Now HTML 5 is approaching
浏览器端开发• HTML5 新特性:
二维绘图 API 允许 web 应用程序将自身注册为某个协议或 MIME 类型
的 API 播放视屏和音频的 API 历史记录 API 跨文档的消息传递,使得文档可以互相通
信而不用考虑它们的来源域 支持拖放操作的 API 支持编辑操作的 API 新的网络 API 使用 javascript API 的键值对来实现客户
端的持久化存储,同时支持嵌入的 SQL 数据库 服务器推送
浏览器端开发 DOM 模型
用于表示 html 生成的文档的结构 插入删除节点 修改节点属性(调节 css) 注册消息响应事件 问题:
主流浏览器的实现的差异性( DOM Level2)
浏览器端开发 javascript
在设计上受一定的 c 影响,但仍有许多的差异 弱类型动态语言
变量定义 var s = ‘string’; var i = 1; var f = 1.00; var obj = {}; var array = [];
浏览器端开发 javascript
闭包:funtion closureTest(){
var testArray = [1,2,3,4,5];function printArray(){
for (var i = 0; i < testArray.length; i++){
console.log(testArray[i]);}
}}
浏览器端开发 web 开发的问题
不同浏览器实现的差异性 标准的 API 过于底层 javascript 缺乏良好的 OO 支持
于是: javascript 框架应用而生 著名的 javascript 框架 :
jquery, dojo, mootools, YUI,etc
浏览器端开发 Dojo 是一个 web 开发框架,它对浏览器
实现差异进行了屏蔽,提供了一个强壮的、易用的高抽象层次的访问接口。
它由三个部分组成 : dojo: dojo 的核心库,用于实现最为基础和重
要的客户端编程 , 比如对 dom 对象的操作, ajax 通讯等。
dijit: js 的 ui 库, dojox: 实验性的 js 功能,比如制图
浏览器端开发 dojo.query: 查找符合指定条件的 dom 元
素 pure js
dojo
浏览器端开发 dojo.xhr 用于向服务器端发送 AJAX 请求
dojo pure js
浏览器端开发 dijit 控件:
两种使用方式: 标记语言式声明 脚本语言动态生成
服务器端开发 常见的服务器端开发解决方案
ASP.NET JAVA EE(struts, spring) Coldfusion Python with Django Ruby on Rails PHP(Zend)
服务器端开发 Django
诞生于 2005 , 它是基于 python 的 web 开发框架。
特性: ORM admin 管理界面和以及可以给予其扩展的能力 模板语言 web 开发工具集,可以提高管理配置的生产率
服务器端开发 安装
创建项目
wget http://www.djangoproject.com/download/1.2.3/tarball/tar xzvf Django-1.2.3.tar.gzcd Django-1.2.3sudo python setup.py install
django-admin.py startproject $projectname./manage.py runserver
服务器端开发 一个 django 新项目的文件目录结构:
创建 apppython manage.py start project
服务器端开发 定义 url映射 修改 $home/urls.py
和 $home/app_demo/urls.py
服务器端开发 定义 view函数
启动 server
服务器端开发 To be continued…
ORM 模型 模板系统 部署 请求响应模型
参考资料 Web 标准
HTTP 1.1 标准 RFC2616 HTML 4.1 标准 DOM Level2 标准 CSS 2 标准
JavaScript : JavaScript: The Good Parts by Douglas
Crockford JavaScript: The Definitive Guide by David
Flanagan
参考资料 dojo :
http://dojotoolkit.org/api/ dojo官方文档,目前最新的版本已经比较详尽了
http://dojocampus.org/explorer/ dojo campus 有很多不错的示例代码
sitepen 网站 Dojo: The Definitive Guide, Matthew A.
Russell
参考资料 Python
Dive Into Python, Mark Pilgrim Expert Python Programming: Best
practices for designing, coding, and distributing your Python software by Tarek Ziadé
http://docs.python.org python官方文档 http://stackoverflow.com/questions/tagg
ed/python 活跃的 python社区
参考资料 Django
http://docs.djangoproject.com/en/1.2/ Django Step By Step, by limodou , http://stackoverflow.com/questions/
tagged/django Others:
What should a developer know before building a public web site