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