Django程序的发布

Django程序在Linux上的部署

1.服务器搭建Python环境

1.1 安装python3

  • 不过多的描述,请参考安装文章,地址

1.2 创建虚拟环境

virtualenv envsname

1.3 代码传送到服务器

  • 可以使用 git 或者FZ

1.4 安装第三方包

  • 发布上的代码应该包含requirement.txt

    pip freeze > requirements.txt

  • 激活虚拟环境后执行,到包含requirement.txt目录下:

    pip install -r requirements.txt

  • image-20211221174954989

1.5 迁移数据库

  • python manage.py makemigrations

  • python manage.py migrate

  • 本博客只是做简单发布的示例,因此暂时不做数据库的迁移工作。注:如果服务器的数据库支持远程连接,亦可使用Navicat进行数据库的迁移工作

1.6 测试

  • 查看一下django是否等够正常启动

  • image-20211221175227874

2.安装Nginx

3.发布

3.1 简单发布

  • 将程序在后台运行,并且将终端的输出(打印)指向nohup.out文件
nohup python manage.py runserver 127.0.0.1:8000 &
  • 补充

    • 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:

      nohup command &
      
    • 默认都是输出到nohup.out文件中,也可以修改指定的文件,这里不在过多描述,请参考这篇文章

  • 此时Django程序已经运行在后台

    image-20211221180824427

  • 使用nginx进行反向代理

  • # 修改nginx.conf的配置文件,
    server {
            listen       80;
            server_name  服务器IP;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                proxy_pass  http://127.0.0.1:8000/;#django服务启动的地址
            }
    
  • 启动nginx

  • cd sbin
    ./nginx
    
  • image-20211221181458562

  • 访问成功

3.2 上线发布

  • 补充:nginx uwsgi wsgi django 这些东西究竟是什么关系.参考文献

  • image-20211221183925202

1.安装uwsgi
pip install uwsgi

image-20211221182355407

2.配置nginx.conf文件
# 新增加一个server配置,此过程繁多建议将文件下载下来修改后在传到服务器上
server {
	listen 8000; #暴露给外部访问的端口
	server_name localhost;
	charset utf-8;
	location / {
		include uwsgi_params;
		uwsgi_pass 127.0.0.1:8997; #外部访问8996就转发到内部8997
	}
	location /static/ {
		alias /data/pythoncode/dejangoTest/web/static/; #项目静态路径设置
	}
}

image-20211221190936489

3.使用uwsgi启动django

django自带的wsgiref 在调试模式下使用的wsgi的文件,网关接口,协议
uwsgi:协议
uWSGI:具体实现方式

  • uwsgi配置文件的格式

    conf
    py
    cnf
    xml
    json
    ini
    yaml

  • # uwsgi.ini file
    [uwsgi]
    
    # Django-related settings
    socket = :8000
    
    # the base directory (full path)
    chdir = /root/data/pythoncode/testcode/mypro
    
    # Django s wsgi file
    module = mypro.wsgi
    
    # process-related settings
    master = true
    
    # home = /root/data/envs/anydjango
    
    # maximum number of worker processes
    processes = 5
    
    #maximum number of worker threads
    threads = 5
    
    virtualenv=/root/data/envs/anydjango
    
    # try to remove all of the generated file/sockets
    vacuum = true
    
    # 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器
    daemonize = /root/data/pythoncode/testcode/mypro/log/myuwsgi.log
    
  • 启动

    uwsgi --http :8000 --module dejangoTest.wsgi
    
  • 关闭

    • killall uwsgi
      
  • image-20211221195350577

  • image-20211221195501290

  • 另一种启动命令

    image-20211221200551420

4.设置静态文件
SATAIC_ROOT=os.path.join(BASE_DIR,'web/static/')#由于我的静态文件是放在应用里面的,因此我要在路径前加上应用名

image-20211221192151565

# 执行命令
python manage.py collectstatic

image-20211221192827820

nginx中配置静态文件;

server {
        listen       80;
        server_name  127.0.0.1;
        # charset UTF-8;

        #access_log  logs/host.access.log  main;

        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;
       }
	
		location /static {
			alias /www/res/statics;
		}
}

image-20220401152250453

  • 配置完成后启动uwsgi

    uwsgi --ini uwsgi.ini
    
  • 重启nginx

    ./nginx -s reload
    
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Django是一个流行的Python Web框架,它提供了强大的工具和功能,使得开发Web应用程序变得更加简单和高效。小程序是一种轻量级的移动应用程序,可以在微信、支付宝等平台上运行。 利用Django框架可以很方便地开发小程序的后端服务。通过Django的ORM(Object-Relational Mapping)功能,我们可以很容易地定义数据库模型,存储和管理我们的数据。同时,Django的视图和路由系统也可以帮助我们构建出灵活而易于维护的API接口,用于与小程序前端进行交互。 对于跑腿服务来说,我们可以使用Django开发出相应的功能模块。比如,我们可以定义一个User模型来管理用户信息,包括用户名、电话号码等等。同时,我们可以定义一个Task模型来存储跑腿任务的相关信息,包括任务内容、起始地点、目的地点等等。 通过Django的视图和路由系统,我们可以定义一系列的API接口,包括用户注册、登录、发布任务等功能。小程序前端可以通过调用这些API接口与后端进行交互,实现任务的发布与接取。 此外,Django还提供了强大的用户认证和权限管理功能,我们可以很轻松地控制用户之间对于任务的访问权限,确保任务只能被发布人和接取人所查看和操作。 总之,利用Django框架可以方便地开发出一个跑腿小程序的后端服务,实现用户注册、登录、任务发布与接取等功能。Django提供了丰富的功能和易用的开发工具,能够大大简化后端开发的过程,提高开发效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值