@tsingwong
2016-10-13T08:28:15.000000Z
字数 3216
阅读 883
Python
C/S——Client/Server 即客户机/服务器结构
B/S——Browser/Server 即浏览器/服务器结构
静态站点——浏览器发起http请求,Web服务器返回HTML文件返回浏览器。
动态站点——浏览器发起请求,Web服务器执行某些程序(python程序,
PHP程序或JSP程序),执行结果输出HTML文件返回浏览器。
现在多使用MVC设计Web应用
M:Model 模型,存储Web应用数据的代码
V:view 视图,格式化和显示Web应用的用户界面和代码
C:controller 控制器,将Web应用粘合在一起并提供业务逻辑的代码
CGI——Common GateWay Interface 通用网管接口,可以让一个客户端,从浏览器向服务器请求数据。是描述客户端与服务器程序之间传输数据的标准。
前端程序——HTML + CSS + JS
后台程序——Python或PHP或JSP等
数据库——Mysql或MongoDB等
HTML——Hyper Text Markup Language 超文本标记语言,标记语言不是被编译执行的,而是渲染显示
CSS——Cascading Style Sheets 层叠样式表
JS——JavaScript 直译脚本语言
CGI,运行在服务器上的程序,提供同客户端HTML页面的接口。CGI程序不限定语言。
浏览器客户端通过两种方法向服务器传递信息,这两种方法就是 GET 方法和 POST 方法。
- GET 方法发送用户信息到服务端,数据信息包含在请求 URL 上,以?分割。如: http://www.jikexueyuan.com/cgi-bin/hello.py?key1=Value&key2=Value2
- GET 请求可以被浏览器缓存
- GET 请求会保存在历史记录中
- GET 请求有长度限制(1024字符)
- GET 请求不应用于敏感场合
Python 自带的包可以建立简单的Web服务器:
BaseHTTPServer
: 提供基本的 Web 服务和处理类SimpleHTTPServer
: 包含执行 GET 请求的SimpleHTTPRequestHandler
类CGIHTTPServer
: 包含处理 POST 请求和执行的 CGIHTTPRequsetHandle
类Apache 可以通过简单的 API 扩充将 Python 解释器编译到服务器中
CGI程序编写过程:
- 创建目录
- 编写CGI程序
- 开启服务器
- 使用浏览器访问
CGI 中运行 Python程序前需要以下步骤:
1.指定了用来执行本脚本的解释器,即在.py
文件头部加入下面语句
#!/usr/bin/env python2
2.为.py
文件增加执行权限
chmod +x main.py
3.运行程序
python -m CGIHTTPServer port # 最后一个为端口号,如8081等
注:输出之前记得先输出Content-type
,即:
print("Content-type: text/html \n\n")
软件框架,为实现某个业界标准或完成特别基本任务的软件组件规范,也指为实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
框架功能类似基础设施,提供并实现最为基础的软件架构和体系。通常依据特定的框架实现更为复杂的业务逻辑。
Web 应用框架是支持动态网站、网络应用程序的软件框架。
工作方式: 接受 HTTP 请求并处理,分派代码,产生 HTML,创建 HTTP 相应。
表单是 HTML 页面中负责数据采集功能的部件。三部份组成,即表单标签、表单域、表单按钮。
<form></form>
<input .../>
大致有三种,提交按钮,复位按钮和一般按钮
<form>
<label for="male">Male</label>
<input type="radio" name="sex" id="male" />
<br />
<label for="female">Female</label>
<input type="radio" name="sex" id="female" />
</form>
for属性与相应的元素的id属性相同。
当作为锚点使用时,两者都可以但是强烈建议用id
<a name="myname"></a>
<div id="myid"></div>
以下情况只能使用id:
# 1. label与form控件关联:
<label for="MyId">MyId</label>
<input type="text" id="MyId" name="MyName"/>
# 2. CSS选择器中,只能使用#id,并不能使用name属性
# 3. 在获取对象时,IE中支持直接使用id来引用该id属性的对象。
MyId.value
DOM实现同样的操作,则需要:
document.getElementById("MyId").value
使用name的话:
document.forms[0]['MyName'].value
以下情况中只能使用name:
表单的控件名,提交数据时使用控件的name。因为name可以同时对应多个控件,如check和radio,但id必须是全文档唯一的。
数据库,可以理解为电子化的文件柜。用户可以对数据库中的数据进行增、删、改、查操作。
SQL(Structured Query Language,结构化查询语言),用于数据库中的标准数据查询语言。
安装MySQL—Python库遇到一堆杂毛问题,总归来说以下几点改正:
PYPI上下载安装包
# 解压出来运行
python setup.py build
python setup.py install
# 错误1,:大致是因为没有安装libmysqld-dev和libmysqlclient-dev开发包
EnvironmentError: mysql_config not found
# 解决方法
sudo apt-get install libmysqld-dev libmysqlclient-dev
# 错误2:大致是因为没有安装python-devel 开发包
# 解决方法
sudo apt-get install python-dev