美文网首页
Python的web应用

Python的web应用

作者: 晴天咚咚 | 来源:发表于2017-07-25 21:32 被阅读0次

XML

可扩展标记语言(标准通用标记语言的子集)是一种简单的数据存储语言。无限制。

<Hello> 
<bcd>China</bcd> 
<bcd>USA</bcd> 
<bcd>UK</bcd> 
</Hello>

HTML

超文本标记语言。HTML是一种用来定义网页的文本,可以编写网页。有规范。

<html>
<head>
  <title>Hello</title>
</head>
<body>
  <h1>Hello, world!</h1>
</body>
</html>

CSS简介

CSS是Cascading Style Sheets(层叠样式表)的简称。是将样式信息与网页内容分离的一种标记语言。

<html>
<head>
  <title>Hello</title>
  <style>
    h1 {
      color: #333333;
      font-size: 48px;
      text-shadow: 3px 3px 3px #666666;
    }
  </style>
</head>
<body>
  <h1>Hello, world!</h1>
</body>
</html>

JavaScript简介

JavaScript是为了让HTML具有交互性而作为脚本语言添加的,JavaScript既可以内嵌到HTML中,也可以从外部链接到HTML中。

<html>
<head>
  <title>Hello</title>
  <style>
    h1 {
      color: #333333;
      font-size: 48px;
      text-shadow: 3px 3px 3px #666666;
    }
  </style>
  <script>
    function change() {
      document.getElementsByTagName('h1')[0].style.color = '#ff0000';
    }
  </script>
</head>
<body>
  <h1 onclick="change()">Hello, world!</h1>
</body>
</html>

HTTP协议简介

HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信。
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

典型的响应消息

HTTP/1.0200OK
Date:Mon,31Dec200104:25:57GMT
Server:Apache/1.3.14(Unix)
Content-type:text/html
Last-modified:Tue,17Apr200106:46:28GMT
Etag:"a030f020ac7c01:1e9f"
Content-length:39725426
Content-range:bytes55******/40279980

在线学习网站w3schools

WSGI接口

WSGI:Web Server Gateway Interface。

Web应用的本质就是:

浏览器发送一个HTTP请求;

服务器收到请求,生成一个HTML文档;

服务器把HTML文档作为HTTP响应的Body发送给浏览器;

浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。

处理底层TCP连接、HTTP原始请求和响应格式

运行WSGI服务

# hello.py

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return '<h1>Hello, web!</h1>'
# server.py
# 从wsgiref模块导入:
from wsgiref.simple_server import make_server
# 导入我们自己编写的application函数:
from hello import application

# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
httpd = make_server('', 8000, application)
print "Serving HTTP on port 8000..."
# 开始监听HTTP请求:
httpd.serve_forever()

http://localhost:8000/ 访问

Flask来使用

流行的web框架flask, 是一个 python web micro framework。简洁高效,使用也很简单。flask 依赖两个库 werkzeug 和 jinjia2。采用 pip 方式安装即可。

pip install flask

使用 flask 写一个简单的 web 服务

from flask import Flask
from flask import request

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def home():
    return '<h1>Home</h1>'

@app.route('/signin', methods=['GET'])
def signin_form():
    return '''<form action="/signin" method="post">
              <p><input name="username"></p>
              <p><input name="password" type="password"></p>
              <p><button type="submit">Sign In</button></p>
              </form>'''

@app.route('/signin', methods=['POST'])
def signin():
    # 需要从request对象读取表单内容:
    if request.form['username']=='admin' and request.form['password']=='password':
        return '<h3>Hello, admin!</h3>'
    return '<h3>Bad username or password.</h3>'

if __name__ == '__main__':
    app.run()

除了Flask,常见的Python Web框架还有:
Django:全能型Web框架;

web.py:一个小巧的Web框架;

Bottle:和Flask类似的Web框架;

Tornado:Facebook的开源异步Web框架。

Flask默认支持的模板是jinja2

Flask参考文档

Gunicorn

Gunicorn 绿色独角兽 是一个Python WSGI UNIX的HTTP服务器。这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速。

gunicorn -w 4 -b 127.0.0.1:8000 WebModule:app

我们需要用 8000 的端口进行访问,原先的5000并没有启用。其中 gunicorn 的部署中,,-w 表示开启多少个 worker,-b 表示 gunicorn 开发的访问地址。

python web 部署:nginx + gunicorn + supervisor + flask 部署笔记

相关文章

网友评论

      本文标题:Python的web应用

      本文链接:https://www.haomeiwen.com/subject/jfcikxtx.html