非web項目使用Django連接postgreSQL數據庫

非web項目使用Django連接postgreSQL數據庫

1.Django安裝
1.1安裝命令

pip install Django
檢測安裝是否成功:
#python
>>> import django
>>> django.VERSION
若輸出了Django的版本號,說明安裝成功。

1.2出現python版本低異常的解決
1.下載新版本python:
sudo apt-get install python3.5
2.切換python版本:
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.5 /usr/bin/python
2.Django連接postgreSQL
2.1創建django項目
1.使用python開發IDE pycharm:點擊:file–>new project,選擇Django欄目,輸入項目名稱,點擊create創建。
2.創建APP:在每個django項目中可以包含多個APP,相當於一個大型項目中的分系統、子模塊、功能部件等等,相互之間比較獨立,但也有聯繫。所有的APP共享項目資源。
在pycharm下方的terminal終端中輸入命令:
python manage.py startapp testdb
這樣就創建了一個叫做testdb的APP,django自動生成“testdb”文件夾。

2.2使用postgreSQL數據庫
1.postgreSQL數據庫安裝:
sudo apt-get install postgresql
安裝完成後,默認會:
(1)創建名爲"postgres"的Linux用戶
(2)創建名爲"postgres"、不帶密碼的默認數據庫賬號作爲數據庫管理員
(3)創建名爲"postgres"的表
2.修改默認管理員賬號的密碼:
sudo -u postgres psql
postgres=# alter user postgres with password ‘123456’;
這樣,管理員"postgres"的密碼就爲"123456"。退出psql客戶端命令:\q
3.創建postgreSQL數據庫
這裏我使用Navicat創建postgreSQL數據庫,詳見參考文檔Navicat的安裝和使用,也可以使用命令行的方式創建。
4.在Django項目中配置數據庫
(1)首先在settings.py文件中註冊app,不註冊它,你的數據庫就不知道該給哪個app創建表。
在INSTALLED_APPS下加入已經創建的app名稱即可。(如’testdb’,)
(2)在settings中,配置數據庫相關的參數,在DATABASES下配置:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.postgresql_psycopg2’,
‘NAME’: ‘db.postre’,#數據庫名稱
‘USER’:‘postgres’,#擁有者,這個一般沒修改
‘PASSWORD’:‘123456’,#密碼,自己設定的
‘HOST’:’’,#默認的就沒寫
‘PORT’:‘5432’,
}
5.創建一個.py文件,測試是否能連接數據庫。

import psycopg2
conn = psycopg2.connect(database="db.postre", user="postgres", 
password="123456", host="localhost", port="5432")
print "Opened database successfully"

如果打印出來
“Opened database successfully”,就說明數據庫連接成功。
2.3.Python語言的PostgreSQL數據庫接口psycopg2的安裝:
sudo apt-get update
sudo apt-get install -y build-essential
sudo apt-get install -y python3.5-dev
sudo apt-get install -y libpq-dev
sudo pip3 install psycopg2
2.4.出現postgresql密碼無法修改問題的解決:
見下方參考文檔。

3.程序編寫和運行
(1)在已經建好的app中編輯models.py文件,這裏創建了2個字段,分別保存用戶的名字和密碼:
class UserInfo(models.Model):
user = models.CharField(max_length=32)
pwd = models.CharField(max_length=32)
(2)接下來要在pycharm的teminal中通過命令創建數據庫的表。有2條命令,分別是:

python manage.py makemigrations
python manage.py migrate
(3)創建一個.py文件,在其中實現對數據庫的操作:

import sys
import os
#獲取當前文件目錄
pwd = os.path.dirname(os.path.realpath(__file__))
 #獲取項目名的目錄(因爲我的當前文件是在項目名下的文件夾下的文件.所以是../)
sys.path.append(pwd+"../")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "項目名稱l.settings")

import django
django.setup()

from testdb.models import UserInfo
def dbsave(user1,pwd1):
    saveuser = UserInfo(user=user1,pwd=pwd1)
    saveuser.save()
    print('添加成功')
def dbfind():
    list = UserInfo.objects.all()
    for var in list:
        print(var.user,var.pwd)
def dbfindname(name):
    find = UserInfo.objects.get(user=name)
    print(find.user,find.pwd)
def dbupdate(name,pwd1):
    update = UserInfo.objects.get(user = name)
    update.pwd = pwd1
    update.save()
    print('修改密碼成功')
def dbdelete(name):
    find = UserInfo.objects.get(user=name)
    find.delete()
    print('刪除成功')

if __name__ == "__main__":

    dbsave('liu','1265')
    dbfind()
    dbfindname('pop2')
    dbupdate('liu1','4523')
    dbdelete('pop2')

4.參考文檔:
Django安裝及學習網站:https://www.runoob.com/django/django-install.html
https://www.cnblogs.com/feixuelove1009/p/5823135.html
安裝中出現python版本低的解決辦法:
https://www.cnblogs.com/wmr95/p/7637077.html
單獨的 python 腳本文件使用 django 自帶的 model:
https://blog.csdn.net/bovenson/article/details/51210552

Ubuntu PostgreSQL安裝和配置:https://www.cnblogs.com/Siegel/p/6917213.html
django連接postgreSQL配置:
https://blog.csdn.net/wuxiaosi808/article/details/54375753
Python語言的PostgreSQL數據庫接口psycopg2的安裝:
https://cloud.tencent.com/developer/ask/64188

數據庫管理工具navicat的安裝:https://www.jianshu.com/p/12501bdcfaf8
./start_navicat無反應的解決:https://www.cnblogs.com/hrhguanli/p/4548778.html
Navicat亂碼問題:https://blog.csdn.net/sinat_26546385/article/details/80381282

Postgresql密碼重置:
https://www.cnblogs.com/oxspirt/p/7217320.html?utm_source=itdadao&utm_medium=referral
https://www.cnblogs.com/terrysun/archive/2012/11/30/2796479.html
https://blog.csdn.net/tingyuanss/article/details/43763899
https://panyongzheng.iteye.com/blog/2238282

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章