将Django项目迁移到linux系统的详细步骤
作者:id老猫 发布时间:2021-02-11 02:13:09
Django项目配置修改
我们需要把原先的Django项目进行修改才能更好地进行项目迁移工作,首先需要修改的是settings.py文件。
由于项目上线之后不能让用户看到后台的运行逻辑,所以我们要把DEBUG改成False,把ALLOWED_HOSTS写成‘*’,这样是为了允许从不同主机进行访问。
由于linux中如果不加这句可能会出现文件找不到的情况,所以我们要把模板的路径进行拼接。
由于做Django项目肯定进行过数据库的同步,所以我们要把migrations中的同步文件删除,以便在linux系统中的数据库同步。
项目环境以及数据库打包
首先我们需要把Django环境进行打包。
我是用的是沙箱环境就直接进入到沙箱环境中,然后执行上述命令进行打包。
mysqldump -u 用户名 -p 数据库名 表名1 表名2 >导出的sql文件名
然后把数据库结构导出成一个sql文件,这里需要注意的是,导出数据库时,不要把表全都导出,只导出自己创建的表即可。
然后我们可以通过xftp把项目环境、sql文件以及自己的完整项目传到linux上面。
linux系统中的配置
1、python3的安装
linux是自带python2的,我们不需要删除python2,只是让python2和python3共存就可以了。
首先安装python3的依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y
然后下载python3的安装包
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
解压安装包
tar -xvJf Python-3.6.2.tar.xz
这里如果安装的是3.5版本的python,在使用manage.py命令时会报no module secrets错误。
上述步骤做完之后我们可以看到当前路径下出现了一个python文件,我们进入到此文件夹中进行编译安装
这里我们默认安装在usr/loacl/python3下。
运行结束之后执行make && make install命令
然后进行软链接设置
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
直到这里我们就实现了python3和python2的共存,输入python3和pip3就使用的是python3,输入python和pip使用的就是python2.
2、第二步就是数据库的配置
由于自centos7之后linux就不兼容mysql数据库了,而是使用mariadb数据库,所以我们也要使用mariadb数据库,其实这两个数据库一模一样,连命令都一样,就是改了个名字。
我们只需要启动mariadb数据库就可以了
systemctl start mariadb #启动mariadb数据库
systemctl enable mariadb #开机启动mariadb数据库
数据库启动之后我们就可以使用mysql -uroot -p来进入数据库了
项目整合与配置
上述准备工作都做完之后我们就可以在linux系统上配置我们的Django项目了
首先我们需要配置Django环境。
pip install -r package.txt
然后进行数据库同步,我们首先需要创建对应的库,然后执行
这里在进行数据库匹配的时候可能会报错
raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
解决办法:
C:\Python37\Lib\site-packages\django\db\backends\mysql(python安装目录)打开base.py,注释掉以下内容:
if version < (1, 3, 13):
raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)
python3 manage.py makemigrations
python3 manage.py migrate
然后查看一下自己的数据库是不是出现了对应表,然后导入sql文件
source sql文件路径
直到这里我们的Django项目就完成了迁移。
来源:https://blog.csdn.net/laomao9112/article/details/107208380


猜你喜欢
- 对于路径中含有中文的图像,直接用cv2.imread读取会报错,上次看到有大佬使用cv2.imdecode就可以正常读取,有点好奇,所以今天
- 目录支持多种类型的过滤避免多个范围查询优化排序理解索引概念最简单的方式是通过一个案例来进行,以下就是这样的一个案例。假设我们需要设计一个在线
- IE在处理透明度上真够恶心,而且在IE7必须让元素的hasLayout为ture,要不会失效。以下是我最新处理透明度的代码:var 
- 本文实例为大家分享了python实现学生成绩测评系统的具体代码,供大家参考,具体内容如下1、问题描述(功能要求): 根据实验指导书
- Protocol Buffers (类似XML的一种数据描述语言)最新版本2.3里,protoc—py_out命令只生成原生的P
- 本文实例讲述了Python实现按中文排序的方法。分享给大家供大家参考,具体如下:安装中文库sudo apt-get updatesudo a
- 这个是今年年初写的一篇,拿出来温习下。指针让程序结构变得混乱,也让程序执行效率提高,因此在oo的语言中不提倡指针的使用,使得程序结构清晰易读
- 人生苦短,快学Python!上一周发了一篇文章《Python Tkinter图形工具使用方法及实例解析》,很多小伙伴都希望能多出点教程,今天
- 我们最近的项目中需要使用谷歌机器人验证,这个最主要的就是要有vpn,还需要有公司申请的google账号(自己申请的没用)用于商用的,利用这个
- 本文研究的主要是Python编程求质数实例,选取了几个数进行了测试,具体如下。定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能
- 一 计算公式:二 实现代码(1)import mathfrom tqdm import tqdmimport timetotal,s,n,t
- mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的
- 世上无难事,只要找到 Homebrew 的正确安装方式。Homebrew 是什么Homebrew是 mac的包管理器,仅需执行相应的命令,就
- 首先,一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?  
- 我们经常需要在数据库上建立有权限的用户,该用户只能去操作某个特定的数据库(比如该用户只能去读,去写等等),那么我们应该怎么在sqlserve
- 先上代码:import tensorflow as tfx = tf.ones(shape=[100, 200], dtype=tf.int
- 如下所示:f=file('a.txt')for eachline in f: print eachline来源:https:
- Static(静态)关键字用来定义静态方法和属性,static 也可用于定义静态变量以及后期静态绑定。1、静态变量 static varia
- python-pymysql获取字段名称-获取内容获取字段名称-获取内容import pymysql# 连接数据库db = pymysql.
- 一、前言在开展接口测试或者是接口面试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说