Django+Postgresql

PostgreSql简单使用
下载安装好后,(因为我的是自带哒所以就不说咋下载安装了,百度上也有一大堆),进入postgresql:sudo -i -u postgres进入postgres用户,然后输入:psql输入密码进入了pgsql

基本操作
然后是一些基本操作:大家也可以用\h \?来查看
 

Django+Postgresql_第1张图片

Django+Postgresql_第2张图片

好多都和mysql啊sqlserver啊都差不多的,
不过pgsql有和他们都不一样的地方,它有json和jsonb类型,其实主要学的也就是json和jsonb结构。

json 和 jsonb

      两者从用户操作的角度来说没有区别,区别主要是存储和读取的系统处理(预处理)和耗时方面有区别。简单的说就是:json写入快,读取慢,jsonb写入慢,读取快。

还有json和jsonb的一些基本操作符。可以直接从这儿看到更多 (https://www.postgresql.org/docs/9.5/static/functions-json.html)

jsonbæä½ç¬¦

关于索引

索引这里我还是懵呼呼的,
创建索引语句: create index index_name on table_name (字段名)

在我数据库中我是这么创建的:

create index score_index on student_student using gin(score jsonb_path_ops);

django连接pgsql

django一些配置

settings.py文件,把默认的sqlite3数据库注释掉,写进自己的postgresql

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'pgsql', #数据库名字
        'USER': 'postgres', #用户名
        "PASSWORD" : 'password', #自己的密码
        "HOST":'',
        'PORT':5432,
    }
}

如果是python连接pgsql的话需要安装好psycopg2 和 psycopg2-binary包,直接用pip安装就可以了,pycharm的话还要自己手动在setting中加一下,才可以用。用django的话,上面两个包应该不需要,但是会有warning。
然后去写我们的model:
 

from django.db import models
from django.contrib.postgres.fields import JSONField

class student(models.Model):
    score = JSONField()
    def __str__(self):
        return str(self.score)

用django还没多少日子,还是一个小白,一开始也不知道有自带的json类型,在百度上出来的结果也不算多,然后自己傻fufu的用python连接数据库,傻瓜式的写sql语句插入,而且这个sql语句很是不好写,因为某些引号要求真的是。。
其实都是我不爱看官方文档,不看文档都是因为我不想要看英文,? 官方文档里面写的很清楚明白,最后最后在昨天晚上,我,终于看到了这个(https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/fields/),哇塞好棒!

django提供了postgre的特殊的类型,比如ArrayField列表,CIText fields不区分大小写的text,HStoreField有序的json,JSONField还有我一直一直找的json类型,其实这个对应的是jsonb类型,还有些其它的,我也没有多看。

上面的配置好了之后(别忘了把app加入到settings中哦),可以执行makemigrations 和migrate命令啦,详细的我就不写啦。

在我的pgsql数据库里面也已经建好了表。
 

 

你可能感兴趣的:(Django+Postgresql)