Python配置简单的数据库操作

如目前项目名为:mysite,程序名为:app01

配置简单数据库操作,默认sqlite,咱们指定mysql数据库

 

 

(1)在mysite/settings.py文件下修改如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

'''

配置Mysql数据库

 

 

'''

DATABASES = {

    'default': {

        'ENGINE''django.db.backends.mysql',

        'NAME''test',

        'USER''test',

        'PASSWORD''test123',

        'HOST':'localhost',

        'PORT':'3306',

    },

}

      mysite/__init__.py下修改:

1

2

import pymysql

pymysql.install_as_MySQLdb()

(2)在app01/models.py下设计数据库表,采用ORM方式

1

2

3

4

5

6

7

8

9

10

11

from django.db import models

 

# Create your models here.

class User(models.Model):

    username = models.CharField('用户名', max_length=30)

    userpass = models.CharField('密码',max_length=30)

    useremail = models.EmailField('邮箱',max_length=30)

    usertype = models.CharField('用户类型',max_length=30)

 

    def __str__(self):

        return self.username

(3) 在app01/admin.py中定义显示数据

1

2

3

4

5

6

7

from django.contrib import admin

from .models import User

 

class UserAdmin(admin.ModelAdmin):

    list_display = ('username','userpass','useremail') # 自定义显示字段

 

admin.site.register(User,UserAdmin)

(4)创建更改的文件,将生成的py文件应用到数据库

1

2

python manage.py makemigrations

python manage.py migrate

 

Django 提供的 QuerySet API,shell玩转MySql

在mysite下输入【 python manage.py shell】,然后查询数据表。

Python配置简单的数据库操作

Python配置简单的数据库操作

创建一条用户信息:

1

User.objects.create(username="李白01", userpass="libai123",useremail="[email protected]",usertype="超级管理员")

 

其他操作方式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

# 方法 1

User.objects.create(username="李白", userpass="libai123",useremail="[email protected]",usertype="超级管理员")

# 方法 2

twz =User(username="李白", userpass="libai123",useremail="[email protected]",usertype="超级管理员")

twz.save()

# 获取对象:

Person.objects.all()

# 满足条件查询

User.objects.filter(username="李白")

# 迭代查询:

es = Entry.objects.all()

for in es:

    print(e.headline)

# 查询排序:

User.objects.all().order_by('username')

# 链式查询:

User.objects.filter(name__contains="WeizhongTu").filter(email="[email protected]")

# 去重查询:

qs = qs.distinct()

# 删除操作:

User.objects.all().delete()

1

2

# 更新操作:

Person.objects.filter(name__contains="abc").update(name='xxx')

1

2

3

数据的导出:

python manage.py dumpdata [appname] > appname_data.json

python manage.py dumpdata blog > blog_dump.json

1

2

导出用户数据

python manage.py dumpdata auth > auth.json # 导出用户数据

 

批量向数据表导入数据

将name.txt导入数据库:

Python配置简单的数据库操作

数据导入源码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

#!/usr/bin/env python

#coding:utf-8

#

 

 

from django.core import serializers

import json

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE""xmjc_analysis.settings")

 

 

'''

Django 版本大于等于1.7的时候,需要加上下面两句

import django

django.setup()

否则会抛出错误 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

'''

 

import django

import json

if django.VERSION >= (1, 7):#自动判断版本

    django.setup()

 

 

def main():

    from analysis.models import User

    f = open('./readme/files/name.txt',encoding='utf-8')

    for line in f:

        name,pwd,email,type = line.split('|')

        User.objects.create(username=name,userpass=pwd,useremail=email,usertype=type)

    f.close()

 

def jsondb():

    from analysis.models import User

    data = eval(serializers.serialize("json", User.objects.all())) # json

    userdata = json.dumps(data)

    print(type(userdata))

 

 

if __name__ == "__main__":

    main()

    # jsondb()

    print('插入完毕!')