项目部署一:前期准备(本地上传、gitignore、ssh连接、密钥)

news/2024/12/29 16:14:14/文章来源:https://www.cnblogs.com/Tmars/p/18442207

项目部署

img

想要将django项目部署在服务器上,本质上需要三大部分:

  • 将代码上传到服务器
  • 在服务器上 获取代码、安装服务、配置环境
  • 启动服务

1.代码同步

上传代码的方式有很多种,例如:FTP工具、scp命令、rsync服务、svn等,不过目前公司主流的都是使用git+代码托管平台。

img

  • 本地电脑,安装git并使用git命令上传代码。
  • 代码仓库,创建仓库。
  • 服务器,安装git并使用git命令获取最新代码。

1.1 本地上传

在本地电脑上本质上需要执行如下步骤:

  • 全局配置

    git config --global user.name "xxx"
    git config --global user.email "xxx@live.com"
    
  • 进入项目目录

    • 初始化

      git init
      
    • 配置远程地址

      git remote add origin https://gitee.com/wupeiqi/xxxxx.git
      
    • 本地版本提交

      git add .
      git commit -m '提交说明...'
      
    • 提交到远程仓库

      git push origin master
      

这样虽然能操作,但是会有两个小问题:

  • 项目中所有数据都提交了,如果仓库是公开的,有些敏感数据会泄露。
  • 每次提交都需要输入密码,太烦了。

1.1.1 gitignore

在项目中创建一个 .gitignore的文件,在里面写上文件名或文件夹,可以git忽略一些文件,不要进行版本控制。

https://github.com/github/gitignore/blob/main/Python.gitignore

img

将Python的ignore文件内存拷贝并保存至项目目录下。

img

这样,就可以控制git忽略某些文件。

学会这个知识点之后,接下来再来讲一个关于配置文件的常见操作,即:local_settings.py

img

如果本次开发和线上开发一些配置不同,就可以放在这个文件。

  • 本地:local_settings.py 编写本地特有配置。
  • 线上:local_settings.py 编写线上特有配置。

而在settings.py中编写所有环境都有的配置。

1.1.2 密码或秘钥

本地提交代码时,每次需要输入密码 & 线上服务器拉去代码时,每次也需要输入密码。

  • 固定用户名和密码

    git remote remove origin
    git remote add origin https://用户名:密码@gitee.com/wupeiqi/xxxxx.git
    
  • 使用SSH

    • 使用ssh-keygen命令,生成一对秘钥(公钥和私钥)

      ssh-keygen -t rsa
      

      img

    • 读取公钥 ~/.ssh/id_rsa.pub内容并上传到代码托管仓库
      img

      img

1.1.3 关于版本(赠送)

在本地的git每次执行commit命令时,都会生成一个提交记录,如果执行git push也会将记录提交到代码仓库。

可以通过命令实现在各个版本之间进行切换:

  • 查看提交记录
git log
  • 查看提交记录
git reflog
  • 跳转至指定版本
git reset --hard fa1653b6cd5ed1ff12ef1acdf534e91b9b895604

注意:此命令可以在本地、线上执行,以此来切换到各种版本

1.2 线上同步

登录线上服务器并获取代码,本质上需要以下三个步骤:

  • 基于SSH或web页面登录服务器
  • 云平台网页版:支持登录并进行命令交互(不便捷,不推荐)。
  • SSH工具,连接比较方便(推荐)
  • win:xshell、SecureCRT
  • mac:iTerm2

注意:如果使用SSH工具连接远程服务器的话,需要在云平台的的安全组开启22端口权限。
img
img

  • 安装git

  • 进入项目克隆或拉取代码
    基于用户名和密码:
    git clone https://gitee.com/wupeiqi/xxxxx.git

    基于用户名和密码:
    git clone https://用户名:密码@gitee.com/wupeiqi/xxxxx.git

    基于秘钥:

    ssh-keygen -t rsa

    cat ~/.ssh/id_rsa.pub

    拷贝公钥到代码仓库

    git clone git@gitee.com:wupeiqi/xxxxx.git

1.2.1 SSH密码+下载代码

>>>ssh root@82.156.54.134
>>>cd /data/
>>>git clone https://gitee.com/wupeiqi/xxxxx.git
>>>cat ~/.ssh/id_rsa.pub
>>>拷贝公钥放到代码仓库
>>>cd /data/
>>>git clone git@gitee.com:wupeiqi/xxxxx.git

img
`

1.2.2 SSH秘钥+下载代码

在我们本地想要通过SSH连接服务器,每次连接都输入密码也觉得比较烦,此时也可以使用秘钥的方式直接连接服务器。

>>>ssh-keygen -t rsa    这个命令不需要做了,因为在之前git上传代码时已执行过(已有公钥和私钥)
>>>ssh-copy-id  -i ~/.ssh/id_rsa.pub root@82.156.54.134

img

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

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

相关文章

高级语言程序设计第二个作业

属于课程:https://edu.cnblogs.com/campus/fzu/2024C/homework/13282 要求在:https://edu.cnblogs.com/campus/fzu/2024C/homework/13282 学号:102400117 姓名:廖逸轩以上是习题。这几个顺序是随机的,因为我最后编序号忘了哪个是哪个了...... 问题:printf里面输入引号里面…

高级语言程序设计课程第二次个人作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C/ 这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/2024C/homework/13282 学号:102400227 姓名:谭培![](h ttps://img2024.cnblogs.com/blog/3525132/202409/3525132-20240930170319149-356045001.p…

vue2实现字体修改(全局/局部字体引入修改)/添加文字渐变色样式

1.创建一个全局 CSS 文件 创建一个单独的 CSS 文件,例如 fonts.css,然后在 main.js中引入。 fonts.css 文件内容: @font-face {font-family: youshebiaotihei;src: url(../../fonts/youshebiaotihei.ttf) format(truetype); /* 引用字体,但非全局使用 */font-weight: norma…

async/await 函数到底要不要加 try catch ?

前言 写异步函数的时候,promise 和 async 两种方案都非常常见,甚至同一个项目里,不同的开发人员都使用不同的习惯, 不过关于两者的比较不是本文关注的重点,只总结为一句话:“async 是异步编程的终极解决方案”。 当使用 async 函数的时候,很多文章都说建议用 try catch 来…

UOS 1070/Deepin 23环境下安装Master PDF Editor 5.8.35

UOS 1070/Deepin 23环境下安装Master PDF Editor 5.8.35在UOS 1070环境下,有福昕PDF编辑器可以使用,但是升级到Deepin v23之后,福昕编辑器就无法安装了,需要换工具。 比较好用的就是Master PDF Editor,安装注册也非常简单,现在写到这里,作为记录。# 目前最方便安装的是m…

深度学习系列之1----直观解释Transformer

Abstract 这个系列主要用来记录我自己这种的AI小白的学习之路,通过将所学所知总结下来,记录下来。之前总喜欢记录在笔记本上,或者ipad上,或者PC端的Typora上,但总是很难回头检索到一些系统的知识,因此我觉得博客是一个不错的选择,因为时不时我就会登录网站翻看过去的痕迹…

PARTI-Oracle关系数据结构-表和表簇

2. 表和表簇 2.1. 模式对象简介 数据库模式是数据结构的逻辑容器,这些数据结构称为模式对象。模式对象的例子有表和索引。模式对象是通过 SQL 创建和操作的。 一个数据库用户拥有密码和各种数据库权限。每个用户拥有一个与其同名的模式。模式包含了属于该用户的数据。例如,hr…

chrome-截图录屏插件-Awesome Screenshot

💖简介 Awesome Screenshot 截图录屏是一款浏览器扩展程序,它可以帮助用户进行网页截图、编辑图片以及录制屏幕视频 📖版本 4.4.22 🌟功能截图:可以截取整个网页(即使是需要滚动才能看到的部分)、可见部分或者选定区域。 编辑:截图后可以直接在浏览器中对图片进行编…

PART1-Oracle关系数据结构-表和表簇

2. 表和表簇 2.1. 模式对象简介 数据库模式是数据结构的逻辑容器,这些数据结构称为模式对象。模式对象的例子有表和索引。模式对象是通过 SQL 创建和操作的。 一个数据库用户拥有密码和各种数据库权限。每个用户拥有一个与其同名的模式。模式包含了属于该用户的数据。例如,hr…

Python - [05] 爬虫

题记部分 001 || 爬虫的工作原理(1)获取数据。爬虫程序会根据提供的网址,向服务器发起请求,然后返回数据。 (2)解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 (3)提取数据。爬虫程序再从中提取出我们需要的数据。 (4)储存数据。爬虫程序把这些有…

(三)Style样式

一:定义样式作用于按钮<Window x:Class="WpfTest.WindowStyle"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/ex…