Ubuntu中部署Django項目的配置與連接MySQL

Django的簡介python


MVT模式的介紹

建立項目的虛擬環境mysql

本次使用的是pip安裝sql

1、更新數據庫

sudo apt update

2、安裝pipdjango

sudo apt install python3-pip

3、升級pip(可忽略)vim

sudo python3 -m pip install --upgrade pip

參考連接:https://my.oschina.net/doctorlzr1988/blog/1560215bash

4、安裝virtualenv、virtualenvwrapper服務器

sudo pip3 install virtualenv virtualenvwrapper

5、配置virtualenvapp

編輯.bashrc加密

vim .bashrc

末尾添加

export WORKON_HOME=($HOME)/env #根據本身狀況虛擬環境目錄的位置修改,我在本目錄新建了env作存放
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source
/usr/local/bin/virtualenvwrapper.sh

而後

source .bashrc

6、建立虛擬環境

cd env mkvirtualenv py3dj11 #py3dj11是我用來標識這個環境用途的虛擬環境
workon py3dj11 #切換到虛擬環境

7、安裝django

pip3 install django // 後面添加==1.11.11 能夠指定版本號,不然爲最新

#這個安裝是安裝到虛擬目錄裏面去的,本地python3沒有這個模塊,因此不切換環境,是沒有django的 好了,環境搭建成功!
由於不一樣項目可能使用不一樣版本的django,要使項目所須要的第三方虛擬環境相互分離

開啓一個虛擬環境:
django-admin startproject testproject_t // testproject_t文件夾名稱

work on // 顯示已經安裝的虛擬環境
rmvirtualenv 環境名 // 刪除已經安裝的虛擬環境
deactivate // 退出當前環境
work on 環境名 // 切換環境


建立完以後用pycharm打開這個文件夾testproject_t:

此時啓用服務器,cd到對應文件夾,用tree能夠看文件樹:

python manage.py runserver

打開本地網址127.0.0.1能夠看到連接成功,ctrl+c退出服務器;

建立模塊,其中user是模塊名:

python manage.py startapp user

會自動建立好其中的內容


建立完模塊以後必須在setting,py連接,不然沒法使用:

還有配置python環境,修改成虛擬環境下的python:

在setting.py能夠設置語言和時區

在apps.py裏能夠設置後臺管理界面apps的名字改成中文:

class UserConfig(AppConfig):
name = 'user'
verbose_name = '用戶管理'

開始寫
models.py是數據庫模型,在裏面寫要配置的數據庫表

而後在admin.py先導入後註冊剛剛建立的表:

遷移數據庫文件:

python manage.py makemigration // 
python manage.py migrate // 


而後建立一個管理員帳戶:

python manage.py createsuperuser // 建立超級用戶,以後會讓你輸入名字,郵件密碼

運行服務器:

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

而後打開管理員網址,登陸剛剛註冊的帳戶密碼,就能夠看到數據庫

連接MySQL

在setting文件修改數據庫爲mysql,默認數據庫爲sqlite:
NAME是數據庫名字,USER是登陸數據庫的帳戶,以後是密碼,HOST和PORT不改則爲默認值

這裏要記住安裝pymysql和mysqlclient
在init.py修改

出現這個錯誤代碼時: 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查看

能夠再pycharm右邊的database添加mysql,也能夠查看

若是沒有設置表名,則固定爲app名_模塊名爲表名

要修改表名的話,在models.py進行修改,而後記得數據庫遷移即makemigrations和migrate

能夠繼續設置修改在後臺的展現:
# 地址表
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

相關文章
相關標籤/搜索