选中内容(绿色)时除了会搜索文章名,还会搜索文章内容
点击结果中的文章名进入文章界面后可以按Ctrl+F在页面内搜索
  • 版权:CC BY-SA 4.0
  • 创建:2019-10-13
  • 更新:2019-10-19
Flask 部署


  1. pip3 install uwsgi
  2. uwsgi --version

如果找不到执行程序,可以搜索一下安装到哪里了,然后软链接一下就好了

  1. sudo find / -name uwsgi
  2. sudo ln -s /home/neucrack/.local/bin/uwsgi /usr/bin/uwsgi

工程目录创建一个文件deploy.py:

  1. from file_server import create_app
  2. app = create_app()

其中app是一个flask.Flask对象

  1. uwsgi -s 0.0.0.0:5000 --protocol=http -w deploy:app

然后即可访问

  • 同样建立deploy.py
  • 建立uwsgi.ini
  1. [uwsgi]
  2. module = deploy:app
  3. master = true
  4. processes = 10
  5. threads = 2
  6. chdir = /root/software/file_server
  7. socket = /root/software/file_server/instance/file_server.sock
  8. socket =127.0.0.1:5000
  9. logto = /root/software/file_server/instance/file_server.log
  10. chmod-socket = 660
  11. vacuum = true
  12. stats=%(chdir)/instance/uwsgi/uwsgi.status
  13. pidfile=%(chdir)/instance/uwsgi/uwsgi.pid
  • 启动 uwsgi
  1. $ uwsgi --ini uwsgi.ini
  2. [uWSGI] getting INI configuration from uwsgi.ini

当然,这条命令需要在后台执行,比如

  1. $ (uwsgi --ini uwsgi.ini &)

如果配置文件中没有写threadsnginx的连接可能被拒绝导致无法访问,
比如报

  1. 111: Connection refused

这报错信息来自nginx的log

  1. $ uwsgi --ini uwsgi.ini --enable-threads
  • 停止 uwsgi
  1. uwsgi --reload instance/uwsgi/uwsgi.pid
  2. uwsgi --connect-and-read instance/uwsgi/uwsgi.status
  3. # 这个命令返回一个json串,显示进程和worker的详细状态
  4. uwsgi --stop instance/uwsgi/uwsgi.pid
  • 编辑nginx配置文件
  1. vim /etc/nginx/nginx.conf
  1. server {
  2. listen 8000;
  3. server_name dl.sipeed.com;
  4. client_max_body_size 20m;
  5. # access_log /tmp/nginx.log;
  6. # error_log /tmp/nginx2.log;
  7. location / {
  8. include uwsgi_params;
  9. uwsgi_pass 127.0.0.1:5001;
  10. }
  11. }

  1. uwsgi -s /tmp/file_server.sock --manage-script-name --mount /file_server=file_server:create_app

-s/--socket绑定一个socket到文件,而不是到ip和端口

session 使用注意

当给session赋值为list时不要直接对其操作,比如:

  1. session["list1"] = [1]
  2. session["list1"].append(2)

看起来没问题,实际上对session的修改并没有生效,需要对session["list1"]再赋值一遍:

  1. session["list1"] = [1]
  2. session["list1"].append(2)
  3. session["list1"] = session["list1"]

或者为了让代码看起来更好看使用中间变量

  1. session["list1"] = [1]
  2. tmp = session["list1"]
  3. tmp .append(2)
  4. session["list1"] = tmp
  • 开机启动需要注意

注意设置的用户,比如添加到rc.local时,如果不想是root, 则

  1. /bin/su neucrack -c "cd /home/neucrack/soft/mklife && (uwsgi --ini instance/uwsgi.ini > instance/mklife.log 2>&1 &)"

这里用户名为neucrack

参考

https://www.iteye.com/blog/heipark-1847421

文章有误?有想法想讨论?查看或者发起勘误/讨论 主题
(发起评论需要先登录 github)

/wallpaper/wallhaven-j5lk95.jpg