在macOS中开发的Django项目部署到局域网的Win10服务器上

由于windows10是日常办公电脑,没有服务器基本环境,部署工程耗费不少时间,记录一下。

1、安装Python

访问Python官方下载页面:Python Downloads,下载适用于Windows的安装程序并按照提示进行安装。开发环境python版本是3.11.5,我们这里也选择的3.11.5
打开PowerShell,然后输入以下命令检测安装成功与否:

python --version

2、安装MySQL

访问MySQL官方下载页面:MySQL Downloads,下载适用于Windows的安装程序并按照提示进行安装。

在安装过程中,您将需要配置MySQL root用户的密码,并根据需要配置其他选项。

3、代码迁移

考虑到后期更新代码的方便,采用了git方式迁移代码。这边踩了不少坑,感谢网上各位的分享,最终顺利解决。


        3.1 先在win10中安装git
        3.2 创建项目目录和裸仓库      

                在win10中,创建项目目录d:\wwwroot\djangoprj
                为项目创建一个裸仓库:

git init --bare d:\gitrepos\djangoprj.git
        3.3 让macOS 和 Windows10建立连接


                在windows中共享文件夹gitrepos, 并设置相应权限。
                在mac中通过finder的连接服务器,连接到windows。在这个过程中windows中权限设置很多,参考这篇 Mac无法通过smb连接到windows的共享文件夹 才终于得到解决!

       

        3.4 初始化项目仓库并推送代码

                在mac中的项目目录下运行:

git init
git add .
git commit -m "Initial commit"#在本地仓库添加服务器仓库并推送代码git remote add production /Volumes/gitrepos/djangoprj.git
git push production master

        

        3.5 克隆代码到项目目录中

                在windows d:\wwwroot\下 运行:

git clone d:\gitrepos\djandoprj.git djandoprj

4、安装项目依赖 

        先为项目创建虚拟环境,然后再安装项目依赖的库。

         在D:\wwwroot目录下运行:
        

python -m venv venv

         激活虚拟环境:

 .\\venv\\Scripts\\activate

        在项目目录下安装依赖的库,运行:

pip install -r requirements.txt

安装django项目依赖

5、配置mysql数据库

6、设置setting.py以适合生产环境

        我们一个简单项目没有涉及静态文件,就不需要设置static_root

7、 下载并部署到服务器waitress

        因为我们项目只有admin后台实现一些CRUD操作,不涉及静态文件及其他复杂操作,就只用waitress运行项目,后期如有不合适再添加nginx.

        7.1 安装waitress:

                在项目目录d:\wwwroot\smallorder的虚拟环境中

pip install waitress
        7.2 编写一个简单Waitress服务启动脚本:


                在 Django 项目根目录下创建一个 Python 脚本 runserver.py

from waitress import serve
from myproject.wsgi import applicationif __name__ == "__main__":serve(application, host='0.0.0.0', port=8000)

                这样就可以通过使用命令python runserver.py来启动 Waitress 服务器 

8、后期更新代码方法

        8.1 在 macOS 中进行代码更新   

                打开终端并导航到项目目录

git add .
git commit -m "code add"
#退出更改到服务器裸仓库
git push production master
        8.2 在 Windows 服务器上拉取更新     

                打开命令提示符并导航到项目目录:

cd d:\wwwroot\djangoprj
git pull production master

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python可以自学但是千万不要乱学,避免“埋头苦学”的陷阱!

前言 Python可以自学但是千万不要乱学! 归根结底因为学习是个反人性的过程! 复盘没学下去的网课,都有以下特点: 😅 臣妾听不懂啊! 初次接触编程遇到太多抽象高深的概念,不了解老师口中的一个…

基于51单片机的二氧化碳检测及调节系统仿真

基于51单片机的二氧化碳检测及调节系统 (仿真+程序) 功能介绍 具体功能: 1.二氧化碳传感器测得二氧化碳数据后经过单片机处理。 2.LCD1602实时显示,第一行显示测得的浓度值,第二行显示报警阈值。 3.测…

棱镜七彩参编《网络安全技术 软件供应链安全要求》国家标准发布

据全国标准信息公共服务平台消息显示,《网络安全技术 软件供应链安全要求》(GB/T 43698-2024)国家标准已于2024年4月25日正式发布,并将于2024年11月1日正式实施。棱镜七彩作为主要编制单位之一参与该国家标准的编制,为…

Taro 快速开始

大家好我是苏麟 , 今天聊聊Trao. 官网 : Taro 介绍 | Taro 文档 (jd.com) 点击快速开始 全局安装 CLI 初始化一个项目 选择配置 : 根据自己需求选择 安装失败先不用管 , 用前端工具打开项目 npm install 安装 , 显示安装失败 怎么解决 ? : 查看报错信息 百度 , 问 AI 工具 运…

算法练习第六十天|84. 柱状图中最大的矩形

84. 柱状图中最大的矩形 柱状图中最大的矩形 class Solution {public int largestRectangleArea(int[] heights) {int[] newHeight new int[heights.length 2];System.arraycopy(heights, 0, newHeight, 1, heights.length);newHeight[heights.length1] 0;newHeight[0] 0;…

算法学习笔记(最短路——spfa)

前置:bellman-ford s p f a spfa spfa是 B e l l m a n − F o r d Bellman-Ford Bellman−Ford算法的改进。在 B e l l m a n − F o r d Bellman-Ford Bellman−Ford中,我们在每一轮中枚举了每一条边,但是实际上,在上一轮中没有…

睿尔曼机械臂ROS控制

下载git工程 git clone https://github.com/RealManRobot/rm_robot.git安装配置 catkin build rm_msgs source devel/setup.bash catkin build source setup.bash这里注意,如果采用setup.sh多半不会成功,必须要source setup.bash文件,ros才…

train_gpt2_fp32.cu

源程序 llm.c/test_gpt2_fp32.cu at master karpathy/llm.c (github.com) #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <assert.h> #include <float.h> #include <string.h> #include…

二叉树的最小深度和二叉树的节点数

二叉数的最小深度&#xff1a; 思路&#xff1a;和最大深度一样需要用到回溯递归的方法 代码大致内容 判断函数是否为空&#xff0c;如果是空return 0&#xff1b; 定义一个变量接收递归函数返回的值&#xff08;左&#xff09; 定义一个变量接收递归函数返回的值&#xf…

力扣每日一题-收集垃圾的最少总时间-2024.5.11

力扣题目&#xff1a;收集垃圾的最少总时间 题目链接: 2391.收集垃圾的最少总时间 题目描述 代码纯享版 class Solution {public int garbageCollection(String[] garbage, int[] travel) {int sum 0;int last_M -1,last_P -1, last_G -1;for(int i 0; i < garbage.…

以Azure为例的SSO

由于文章的篇幅有限&#xff0c;无法将全部的代码贴上来&#xff0c;如想要看完整案例&#xff0c;请在公众号文章中留言(其他平台很少看…毕竟最近印度同事的UI组件库搞得我好烦) 1.关于SSO 单点登录又称之为SSO,全称为 Single Sign On &#xff0c;一般在多个应用系统中&…

Github2024-05-10开日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-05-10统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4TypeScript项目4JavaScript项目1Lua项目1C项目1Rust项目1Dart项目1 RustDesk: 用Rust编写的开源远…

U盘文件剪切丢失怎么办?揭秘原因并给出恢复方法

在日常生活和工作中&#xff0c;U盘已成为我们不可或缺的数据存储和传输工具。但有时候&#xff0c;我们在对U盘中的文件进行剪切操作时&#xff0c;会遇到文件丢失的情况。这种突如其来的数据消失往往会让人感到惊慌和困惑。那么&#xff0c;为什么U盘剪切时文件会丢失呢&…

运营模型—归因分析(Attribution Analysis)

运营模型—归因分析(Attribution Analysis) 随着互联网技术和业务的发展,广告投放相关的业务也随之兴起。那么广告投放的效果评估也就随之而来。广告的投放一般都是收费模式,所以选中的渠道商的好坏直接和自己的利益挂钩。于是,「归因分析」便最早应用在了广告投放行业。(…

IDEA 常见设置问题

OutOfMemoryError IDEA 第一次运行项目时&#xff0c;会报错误 - java.lang.OutOfMemoryError: Java heap space / insufficient memory&#xff0c;解决办法是&#xff1a; 将图示部分由默认的 700 改为 2048。 import * 工程lint检查时不允许使用import *&#xff0c;IDE…

Python中如何读取文件夹及其文件:使用os模块详解

路径os Python中如何读取文件夹及其文件&#xff1a;使用os模块详解引入os模块读取文件夹获取当前工作目录更改工作目录列出目录内容 读取文件夹下的文件检查是文件还是目录使用os.path.join()**重点内容**&#xff1a;**使用os模块来读取和管理文件及目录&#xff0c;特别是os…

使用Selenium自动化操作浏览器!

Selenium可以自动化操作浏览器&#xff0c;例如&#xff1a;选择元素&#xff0c;输入&#xff0c;点击等&#xff0c;可以用于软件自动化测试&#xff0c;爬虫等工作&#xff0c;也可以做你想做的任何事情。 本文环境&#xff1a; Python3.12&#xff0c;Windows10&#xff0…

python实现星号打印出金字塔

#编程实现下列图形的打印 a input() for i in range(int(a)//21): num * * ((i1)*2-1) print(num.center(int(a), )) 编译后通过。输入20后得到下面的星号金字塔

拓扑排序——数据结构

拓扑排序是对有向无环图&#xff08;DAG&#xff09;的顶点进行线性排序的方法。关键在于每个顶点代表了一个任务&#xff0c;而每条有向边代表了任务间的先后依赖关系。这个排序保证了每个任务只在它依赖的任务完成后才开始。 拓扑排序的本质是这样的&#xff1a;你有一堆任务…

c#教程——索引器

前言&#xff1a; 索引器&#xff08;Indexer&#xff09;可以像操作数组一样来访问对象的元素。它允许你使用索引来访问对象中的元素&#xff0c;就像使用数组索引一样。在C#中&#xff0c;索引器的定义方式类似于属性&#xff0c;但具有类似数组的访问方式。 索引器&#x…