打造web框架

本文介绍了Web工作原理,包括客户端与服务器交互,通过WSGI接口连接Python应用和数据库。接着,展示了如何在虚拟机中创建并运行简单的Flask应用,以及如何使用uWSGI服务器。进一步,讲解了如何配置Nginx作为反向代理,结合uWSGI部署Flask应用,并进行了本地域名解析和测试。最后,文章涵盖了Nginx配置和uWSGI参数设置,以及Flask应用的编写过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Web原理

1、客户端 <=> WEB服务器(nginx/apache)<=> 转发动态请求 <=> Python <=> 数据库

具体:

客户端 <=> WEB服务器(nginx/apache)<=> wsgi服务 <=> Python <=> 数据库

2、WSGI

WSGI是全称是“Web Server Gateway Interface”

二、web应用

1、在虚拟机中创建文件夹

mkdir flask
cd flask/
ls 
vim webapp.py
vim wsgi_server.py
按i进入编辑模式

2、webapp.py

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return '<b>Hello World</b>'

3、wsgi_server.py

# 这是一个官方提供的仅用于测试的wsgi程序
from wsgiref.simple_server import make_server

# 导入自己的框架
from webapp import application

# 创建一个服务
# 参数:host port 执行的任务
server = make_server('10.224.168.219', 5000, application)
# 启动服务
server.serve_forever()

4、启动

python3 wsgi_server.py

可能会打不开,需要将防火墙关掉

service iptables stop

5、测试 浏览器中输入:http://10.224.168.219:5000

三、uWSGI

1、uWSGI 是专门的wsgi程序

2、安装:pip install uwsgi

3、启动:uwsgi --http 10.224.168.219:5000 --wsgi-file webapp.py

4、配置文件:

(1)参数1:http、socket —— 指定主机和端口 

(2)参数2:wsgi-file —— 应用所在的模块

(3)参数3:chdir —— 启动程序后的当前目录

(4)参数4:callable —— 指定应用程序的实例

四、Nginx+uWSGI+Flask的使用

1、Nginx(添加虚拟主机)

server {
    listen 80;
    server_name www.flask.com;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:5000;
    }
}

启动Nginx或重新加载配置文件

重启nginx:service nginx restart

重新加载配置:service nginx reload

2、uWSGI

[uwsgi]
# 指定socket的主机端口
socket = 127.0.0.1:5000
# 指定的模块
wsgi-file = webapp.py
# 应用实例
callable = app

启动服务:uwsgi uwsgi.ini 

3、书写flask项目

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return 'Hello Flask'


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

4、添加本地的域名解析

        修改文件:C:\Windows\System32\drivers\etc\hosts

        末尾添加内容:10.224.168.219 www.flask.com

5、测试服务

在浏览器中输入:http://www.flask.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值