ubuntu django mysql_Ubuntu中部署Django项目的配置与链接MySQL

Django的简介

3e446e997fd821166272b5d852f76aaf.png

MVT模式的介绍

cc2980fe804ded060cba3e583a81df1d.png

创建项目的虚拟环境

本次使用的是pip安装

一、更新

sudo apt update

二、安装pip

sudo apt install python3-pip

三、升级pip(可忽略)

sudo python3 -m pip install --upgrade pip

参考链接:https://my.oschina.net/doctorlzr1988/blog/1560215

四、安装virtualenv、virtualenvwrapper

sudo pip3 install virtualenv virtualenvwrapper

五、配置virtualenv

编辑.bashrc

vim .bashrc

末尾添加

export WORKON_HOME=($HOME)/env #根据自己情况虚拟环境目录的位置修改,我在本目录新建了env做存放

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source

/usr/local/bin/virtualenvwrapper.sh

然后

source .bashrc

六、创建虚拟环境

cd env mkvirtualenv py3dj11 #py3dj11是我用来标识这个环境用途的虚拟环境

workon py3dj11 #切换到虚拟环境

七、安装django

pip3 install django // 后面添加==1.11.11 可以指定版本号,否则为最新

#这个安装是安装到虚拟目录里面去的,本地python3没有这个模块,所以不切换环境,是没有django的 好了,环境搭建成功!

因为不同项目可能使用不同版本的django,要使项目所需要的第三方虚拟环境相互分离

开启一个虚拟环境:

django-admin startproject testproject_t // testproject_t文件夹名称

6347219f0c7c18a473355144f504117d.png

work on // 显示已经安装的虚拟环境

rmvirtualenv 环境名 // 删除已经安装的虚拟环境

deactivate // 退出当前环境

work on 环境名 // 切换环境

创建完之后用pycharm打开这个文件夹testproject_t:

9011f4e76683f4b02420bbf89abebc73.png

此时启用服务器,cd到对应文件夹,用tree可以看文件树:

python manage.py runserver

打开本地网址127.0.0.1可以看到链接成功,ctrl+c退出服务器;

创建模块,其中user是模块名:

python manage.py startapp user

会自动创建好其中的内容

47d4293af53e3e192ff5ad9bfc8e5ecb.png

3ad66da7c79da357c913d8566b3f512b.png

创建完模块之后必须在setting,py链接,否则无法使用:

a22c4f22b58df6416d1a42e81e458816.png

还有配置python环境,修改为虚拟环境下的python:

9fea20617e7dde9a44e37f22fcb9ae69.png

在setting.py可以设置语言和时区

0c1af927e49390cdb2136c76286c799a.png

在apps.py里可以设置后台管理界面apps的名字改为中文:

class UserConfig(AppConfig):

name = 'user'

verbose_name = '用户管理'

开始写

models.py是数据库模型,在里面写要配置的数据库表

dd7f4303108b34d8e7afe23d22348933.png

然后在admin.py先导入后注册刚刚创建的表:

82456cd414c3f1950a845959d2996727.png

迁移数据库文件:

python manage.py makemigration //

python manage.py migrate //

bc1de08298c2688153d34676ff02a175.png

然后创建一个管理员账户:

python manage.py createsuperuser // 创建超级用户,之后会让你输入名字,邮件密码

运行服务器:

python manager.py runserver --host 127.0.0.1 --port 8000 // 绑定ip和端口

然后打开管理员网址,登录刚刚注册的账户密码,就可以看到数据库

8d742f5885d8354644571430a1ea6837.png

链接MySQL

在setting文件修改数据库为mysql,默认数据库为sqlite:

NAME是数据库名字,USER是登录数据库的账户,之后是密码,HOST和PORT不改则为默认值

2eab28b26348d6477a475056b7f62f4b.png

这里要记住安装pymysql和mysqlclient

在init.py修改

b9805f40211aa97ce442c5d6d94bd40c.png

出现这个错误代码时: django.db.utils.OperationalError: (1045:Access denied for user ‘root’@‘localhost’ (using password: NO)

这个错误看网上的说法基本都是由于 数据库的 用户名 和 密码 不正确导致的 ,下面是我在Django Setting.py里的设置:

DATABASES = {

‘default’: {

‘ENGINE’: ‘django.db.backends.mysql’,

‘NAME’: ‘mydatabase’,

‘USER’: ‘root’,

‘PASSWORD’: ‘123456’,

‘HOST’: ‘localhost’,

‘PORT’: ‘3306’,

}}

这时候进行数据迁移,发现无法链接数据库并且产生了上述的错误代码。

通过启动 mysql 服务, 发现 用户名和密码都正确并且可以使用。

由于Mysql 8.0 的部分语法,密码的加密方式发生了改变,在8.0 中的用户密码采用的是cha2 加密方法。

有可能 是 Django 对这种加密的密码进行编译导致密码设置密码错误。

ALTER USER ‘root’@‘127.0.0.1’ IDENTIFIED WITH mysql_native_password BY ‘password’;

在Mysql 8.0 中,利用上述语句可以更新用户的加密方式为过去版本的方式。执行命令如下:

mysql -u root -p

use mysql;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';

FLUSH PRIVILEGES;

即可修改mysql密码

最后在网页修改的数据库内容可以在本地终端用mysql查看

47076a19a4711a3994dbe9108d834c03.png

可以再pycharm右边的database添加mysql,也可以查看

8a4eb9f3c82b8d40e37f9945583a1ae6.png

如果没有设置表名,则固定为app名_模块名为表名

要修改表名的话,在models.py进行修改,然后记得数据库迁移即makemigrations和migrate

078e454731773891e2b013991f9dff8b.png

可以继续设置修改在后台的展示:

# 地址表

class AddressInfo(models.Model):

add = models.CharField(max_length=50)

class Meta:

# 元类

db_table = 'addinfo'

# verbose_name = '地址管理' # 这个后面会加s

verbose_name_plural = '地址管理'

def __str__(self):

return self.add

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值