我的编程空间,编程开发者的网络收藏夹
学习永远不晚

测试格式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

测试格式

1. virtualvenv

2. django

3. uWSGI

4. nginx

1. virtualvenv

virtualvenv install

首先要安装python3

因为系统已经装了 python3.6 所以接下来直接装虚拟环境 virtualvenv

mkdir yourwebproject folder
cd yourwebproject
/usr/python3.6/bin/python3.6 -m venv venv   #建立一个独立于系统的虚拟环境 不会跟系统环境混淆
source venv/bin/activate                    #运行环境
deactivate                                  #退出环境

2. django

  • 运行虚拟环境,在环境中安装django
pip install django
  • 新建项目
   1). django-admin startproject proName        
   2). cd proName
   3). python manage.py runserver    # run
  • 新建app

不用也可以进行接下来的操作

3. uWSGI

官网: https://uwsgi-docs.readthedoc...

安装

在虚拟环境中

pip install uwsgi

检测 uwsgi 是否正常工作

  • 在与venv同目录下写一个模拟站点文件 test.py
# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]     # python3
  • 运行
uwsgi --http :8080 --wsgi-file test.py  # 假设访问端口号8080
  • 浏览器访问
http://serverIP:8080

若显示站点文件中的输出,说明uwsgi生效

路径 web client <-> uwsgi <-> python

部署 django

  • 首先运行django确保django能正常工作
python manage.py runserver 0.0.0.0:8000
  • 在manage.py同级目录下运行
uwsgi --http :8080 --module djangoProName.wsgi

--module djangoProName.wsgi 代表 djangoProName 目录下的 wsgi.py 文件

  • 浏览器访问
http://serverIP:8080

4. nginx

官网: https://www.nginx.com/resourc...

不在虚拟环境中安装
由于服务器上已经安装了 nginx 所以安装步骤省略,只需要在 nginx.conf 中添加配置即可。

  • 配置 nginx

nginx.conf 结构:

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
}

http {
   # server{ ... }
}

添加 server

   server {
        listen       98 default_server;   # 访问时输入的端口 本地和外部浏览器后面都要加这个端口号
        server_name  10.41.95.85;          # 自己网站的域名

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        
        location / {                      # location : 文件系统配置 去应答一些要服务器资源的请求
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:9898;    # 与ini文件对接端口 与上面的 93 端口没有关系
        }
    }

配置完了之后记得重启nginx

  • 配置 uwsgi

将配置项全部写入ini文件
在venv同目录下自己新建uwsgi的ini文件

[uwsgi]
socket = 127.0.0.1:9898                               ; 与 nginx 对接 IP
; django pro dir
chdir = /root/Odin/TrackManagement/TrackManagement/   ; django project dir
wsgi-file = TrackManagement/wsgi.py                   ; 代表 TrackManagement 目录下的 wsgi.py 文件
; module = TrackManagement.wsgi                       ; 有上面的wsgi配置这个就不用写了

processes = 2                                         ; 进程
threads = 1                                           ; 线程
stats = 127.0.0.1:9696                                ; 内部配置访问ip 与socket区别开
  • 浏览器访问
http://10.41.95.85:98

若显示django画面 则 uwsgi+nginx生效

路径 web client <-> nginx <-> uwsgi <-> django


接下来是过程中踩的坑

<details>
<summary>uwsgi: unrecognized option '--http:8089'</summary>

uwsgi: unrecognized option '--http:8089'
getopt_long() error


原因:

参数格式不对 :8089前面要加空格 uwsgi还在开启

</details>

<details>
<summary>uwsgi: unrecognized option '--http'</summary>

(venv) [root@localhost TrackManagement]# uwsgi --http:8089 --module TrackManagement.wsgi
uwsgi: unrecognized option '--http'
getopt_long() error


原因:

uwsgi还在开启 先杀了进程再重启

</details>

<details><summary>uwsgi trkMngm_uwsgi.ini -> invalid request block size: 21573 (max 4096)...skip</summary>
启动了之后每次访问

*** Stats server enabled on 127.0.0.1:9295 fd: 12 ***
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip


原因:

trkMngm_uwsgi.ini 文件中有设置nginx的socket

如果这时候nginx没有对应的配置或者配置了但是nginx没有重启
就会产生这个错误

</details>

<details>
<summary>ModuleNotFoundError: No module named 'TrackManagement/TrackManagement/wsgi'</summary>

(venv) [root@localhost TrackManagement]# uwsgi --http :8089 --module TrackManagement/TrackManagement/wsgi.py
*** Starting uWSGI 2.0.18 (64bit) on [Tue Feb 19 11:33:20 2019] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-36) on 18 February 2019 05:28:03
os: Linux-3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018
nodename: localhost.localdomain
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 4
current working directory: /root/Odin/TrackManagement
detected binary path: /root/Odin/TrackManagement/venv/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 63229
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on :8089 fd 4
spawned uWSGI http 1 (pid: 33181)
uwsgi socket 0 bound to TCP address 127.0.0.1:33454 (port auto-assigned) fd 3
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
Python version: 3.6.4 (default, Mar  6 2018, 13:19:57)  [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x12acbf0
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72920 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
ModuleNotFoundError: No module named 'TrackManagement/TrackManagement/wsgi'
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 33180, cores: 1)


原因: 应该在TrackManagement项目里面运行 即这个目录下面

(venv) [root@localhost TrackManagement]# ls
db.sqlite3  manage.py  testUwsgi.py  TrackManagement

</details>

<details>
<summary>runserver运行django error : Bad Request</summary>

(venv) [root@localhost TrackManagement]# python manage.py runserver 0.0.0.0:8080
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

February 18, 2019 - 07:47:25
Django version 2.1.7, using settings 'TrackManagement.settings'
Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.
Invalid HTTP_HOST header: '10.41.95.85:8080'. You may need to add '10.41.95.85' to ALLOWED_HOSTS.
Bad Request: /
[18/Feb/2019 07:47:51] "GET / HTTP/1.1" 400 60826
Invalid HTTP_HOST header: '10.41.95.85:8080'. You may need to add '10.41.95.85' to ALLOWED_HOSTS.
Bad Request: /favicon.ico
[18/Feb/2019 07:47:54] "GET /favicon.ico HTTP/1.1" 400 60906


solution

django setting.py

ALLOWED_HOSTS = ['*'] -> ALLOWED_HOSTS = ['*']

</details>

<details>
<summary>manage.py语法错误</summary>

SyntaxError: invalid syntax
[root@localhost TrackManagement]# python manage.py runserver 0.0.0.0:8080
  File "manage.py", line 14
    ) from exc


solution

没有运行虚拟环境 外面的环境是python 虚拟环境才是python3 所以会有语法错误

</details>

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

测试格式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

测试格式

1. virtualvenv2. django3. uWSGI4. nginx1. virtualvenvvirtualvenv install首先要安装python3因为系统已经装了 python3.6 所以接下来直接装虚拟环境 virt
2023-01-31

ASP 测试框架的艺术:用风格和精度测试您的代码

ASP 测试框架的艺术:优雅高效地测试您的代码
ASP 测试框架的艺术:用风格和精度测试您的代码
2024-02-17

减少银杏规格/测试的重复

大家好,今天本人给大家带来文章《减少银杏规格/测试的重复》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!问题内容我正在使用 ginkgo 框架编写测试,并希望减少测试中的
减少银杏规格/测试的重复
2024-04-05

win10怎么退出测试模式? 一个命令退出测试模式的教程

部分用户安装Win10 10586后,在使用时发现屏幕右下角出现了“测试模式 Windows10专业版 10586”的水印。这是怎么回事呢编程?这应该是PCUUUYu用户不小心开启测试模式导致的。如果想要去除这个水印
2023-05-21

win10如何进入测试模式

要进入Windows 10的测试模式,您可以按照以下步骤操作:1. 打开“设置”应用程序:您可以通过开始菜单中的搜索栏,在搜索框中键入“设置”,然后选择“设置”应用程序来打开。2. 在“设置”窗口中,点击“更新和安全”选项。3. 在“更新和
2023-09-08

Windows测试模式怎么推出?

有时不知道哪里碰到了导致系统开机后右下角显示测试模python式和版本号等,百度搜了下,似乎不少人遇到这个问题没有解决,测试模式一javascript般是被用于测试人员测试php驱动程序使用的,其实一句命令就可以退出了。不过怎么会无缘无故进
2023-06-12

win10如何关闭测试模式

要关闭Windows 10的测试模式,请按照以下步骤操作:1. 打开“设置”(可以通过开始菜单中的齿轮图标访问)。2. 在“设置”窗口中,点击“更新和安全”选项。3. 在左侧的菜单中,选择“开发者选项”。4. 在“开发者选项”中,找到“测试
2023-09-02

软件评测师考试多少分及格?

  软件评测师考试多少分及格?软件评测师属于软考中级资格,那么软件评测师及格分数线是多少呢?今天编程学习网小编来为大家解答。  根据往年软考中级软件评测师及格分数线来看,软件评测师各科目及格分数线基本上稳定在45分。  软件评测师需要在一次考试中各科目同时达到合格标准才算通过考试,单科及格成绩不予保留,也不能转到下次考试时
软件评测师考试多少分及格?
2024-04-18

golang函数测试的正确方式

在 go 语言中进行函数测试的正确方式包括:创建以 _test.go 结尾的测试文件。编写以 test 开头的测试函数。使用 t.fail()、t.error()、t.fatal() 和 t.skip() 等辅助测试工具。使用 t.equa
golang函数测试的正确方式
2024-04-27

如何测试测试用例?

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《如何测试测试用例?》,文章讲解的知识点主要包括,如果你对Golang方面的
如何测试测试用例?
2024-04-05

win10测试模式有哪些好处

Win10测试模式的好处包括:1. 可以在受保护的环境中安装和运行未签名的驱动程序,这对于开发人员和硬件制造商来说非常有用。2. 可以在不破坏系统稳定性的情况下安装和测试新的应用程序和工具。3. 可以更容易地访问和修改系统文件和设置,以进行
2023-09-02

C++之eigen安装与测试方式

这篇文章主要介绍了C++之eigen安装与测试方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-15

测试

这是个测试文章,主要看看页面的效果如何 简介撒大声地撒还是简介includeusing namespace std;int main(){ cout<<"abc"<
测试
2019-10-23

批处理检测ip格式是否正确

这篇文章主要讲解了“批处理检测ip格式是否正确”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“批处理检测ip格式是否正确”吧!代码如下:@echo off :: 检测IP格式是否标准 :: c
2023-06-08

Python 单元测试 & 文档测试

1.1   单元测试1.1.1   单元测试编写单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。编写一个Dict类,这个类的行为和dict一致,但是通过属性来访问。>>> d = Dict(a=1, b=2)>>>
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录