非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