ubuntu python3.5 Django postgresql
阿新 • • 發佈:2019-01-31
1、 修改 settings.py 檔案中的資料庫配置
# 預設配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
修改為
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'testdb', # 資料庫名字(需要先建立) 'USER': 'postgres', # 登入使用者名稱 'PASSWORD': '123456', # 密碼 'HOST': '', # 資料庫IP地址,留空預設為localhost 'PORT': '5432', # 埠 } }
2、配置伺服器
# 由於 MySQLdb 模組還不支援 Python3.x,所以 Python3.x 如果想連線MySQL需要安裝 PyMySQL 模組。 pip install PyMySQL pip3 install PyMySQL # python3 版本以上 # 連結 PostgreSQL ,需要安裝 psycopg2 模組 pip install psycopg2 # 建立migrations 檔案包中遷移檔案(檔名格式:0001_initial.py) python manage.py makemigrations # 遷移 python manage.py migrate # 建立 超級管理員 python manage.py createsuperuser # 出現 admin名稱 自己起名, 郵箱地址可以直接回車忽略, 密碼 自己起,超級管理員是用來登入Django admin後臺使用的
3 、報錯事項
Table ' *.django_session' doesn't exist .
這個問題是由於資料庫沒有表的原因
Django 1.9 以前的版本 使用python manage.py syncdb
Django 1.9 以後的版本 使用上面的建立和遷移 python manage.py migrate
Peer authentication failed for user "postgres"
Peer authentication 是預設的配置,如果你的計算機使用者名稱和你的postgres資料庫名是一樣的話,那麼就不會出現此錯誤,不需要為你的資料庫設定密碼。
還有一種md5 authentication,它需要密碼。
而我的計算機使用者名稱和我的資料庫名不一致,所以需要把Peer authentication改成md5 authentication,然後給資料庫設定密碼。
/etc/postgresql/9.3/main/pg_hba.conf
找到下面的一行:
local all postgres peer
改成
local all postgres md5
然後restart postgresql server
安裝PyMySQL 出現問題 安裝不上 可以選擇原始碼安裝
$ git clone https://github.com/PyMySQL/PyMySQL $ cd PyMySQL/ $ python3 setup.py install