非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

猜你喜欢

转载自blog.csdn.net/qq_32188669/article/details/90904140