zoukankan      html  css  js  c++  java
  • uwsgi Flask web.py

    1、安装uwsgi (类似tomcat)、 Flask 及web.py (这二个都是框架,类似Spring Boot,当然还有Django)

    pip install uwsgi
    pip install Flask
    pip install web.py

    2、which uwsgi

    /Library/Frameworks/Python.framework/Versions/3.9/bin/uwsgi

    3.1、编写Flask(ini)

    # plugin = python
    [uwsgi]
    chdir = /Users/xxxx/xxxxx/python/
    master = true
    http-socket = :8080
    #plugin = python
    callable=app2 #注意这里app2指的是py里面的一致,请看下面代码。
    wsgi-file = ./app.py
    processes = 4 #workers个数,也是进程数
    threads = 4 # 线程数
    max-request = 20480
    stats=./uwsgi.status
    pidfile=./uwsgi.pid
    daemonize=./uwsgi.log
    enable-threads=True #开启多线程模式

    app.py

    from flask import Flask
    from flask import request
    
    app2 = Flask(__name__)
    
    
    @app2.route('/home2', methods=['GET', 'POST'])
    def home2():
        name = request.args.get('name', 'test')
        print(name)
        print(request.query_string)
        return '<h1>Home</h1>'
    
    
    @app2.route('/getUserList', methods=['GET'])
    def userlist_form():
    # print(request.query_string['abc'])
    abc = request.args.get("abc") or 'null'
    return 'hello,world!' + abc
     
    
    @app2.route('/', methods=['GET', 'POST'])
    def home():
        return '<h1>Home</h1>'
    
    if __name__ == '__main__':
        app2.run()

    3.2、编写web.py(ini)

     这个下面的代码,是来自网络上的测试代码,我学习的时候,加以修改,让其可以在自测的环境中正常。

    使用 uwsgi + web.py 遇到 “--no python application found, check your startup logs for errors--”

    # plugin = python
    [uwsgi]
    chdir = /Users/xx/xxx/python/
    master = true
    http-socket = :8080
    #plugin = python
    callable=application
    wsgi-file = ./main_test.py
    processes = 4 #workers个数,也是进程数
    threads = 4 # 线程数
    max-request = 20480
    stats=./uwsgi.status
    pidfile=./uwsgi.pid
    daemonize=./uwsgi.log
    enable-threads=True #开启多线程模式

    chdir:工作目录, 就是指你的py文件所在目录。

    main_test.py

    # -*- coding: utf-8 -*-
    """
    @file: main.py
    
    @time: 18-6-12
    """
    
    import web
    urls = (
        '/test/hello', 'hello',
        '/test/hello2', 'hello2',
    )
    
    app = web.application(urls, globals())
    application = app.wsgifunc()  # 这句很重要!! -- 一开始没有这个,所以一直报500错误。
    
    
    class hello:
        def GET(self):
            web.header("Access-Control-Allow-Origin", "*")
            post_data = dict(web.input())
            name = post_data.get('name', 'zhangsan')
            return 'Hello, ' + 'zhangsan' + '!' + name
    
    
    class hello2:
        def GET(self):
            web.header("Access-Control-Allow-Origin", "*")
            web.header('Content-Type', 'text/html;charset=UTF-8')
            post_data = dict(web.input())
            name = post_data.get('name', 'zhangsan')
            return 'Hello, ' + 'zhangsan比比经' + '!' + name
    
    
    if __name__ == "__main__":
        app.run()


    这样就OK了。

    下面是uWSGI服务器(类似Tomcat),启动与关闭的命令。

    启动:
    uwsgi --ini uwsgi.ini
    这个--ini是可以省略的,所以uwsgi uwsgi.ini也是正常 重启: uwsgi
    --reload uwsgi.pid 停止: uwsgi --stop uwsgi.pid

    参考:

    https://www.jianshu.com/p/df935834e034

    https://www.cnblogs.com/niulang/p/15187979.html

    https://www.jianshu.com/p/56df6f1c07b9

    https://blog.csdn.net/qq_35876972/article/details/105340207

    https://blog.csdn.net/weixin_42194215/article/details/113762649 

    https://blog.csdn.net/rav009/article/details/105957396(特别感谢)

    道法自然
  • 相关阅读:
    cvpr热词云
    第八周总结
    从小工到专家阅读笔记01
    【Spring实战4】10--搭建SpringMVC环境
    【Spring实战4】09---构建Spring web
    【Spring实战4】08---面向切面AOP
    读书
    【Spring实战4】07---Bean的作用域
    【Spring实战4】06---装配Bean(xml)
    【Spring实战4】05---装配Bean(Java)
  • 原文地址:https://www.cnblogs.com/jiduoduo/p/15362225.html
Copyright © 2011-2022 走看看