1. 程式人生 > >ubuntu python3.5 Django postgresql

ubuntu python3.5 Django postgresql

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