Django连接数据库及数据操作

Posted remoting-py

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django连接数据库及数据操作相关的知识,希望对你有一定的参考价值。

在Django中有自带了ORM.首先我们可以通过manage.py命令管理工具来进行创建数据迁移与生成映射数据库关系.本例子使用mysql中的mydb数据库,mysql数据库配置部分前面已有介绍.

1.在使用ORM之前,需要在项目主文件中的__init__.py里,创建数据库连接器.python3.x中使用pymysql:

1 import pymysql
2 
3 pymysql.install_as_MySQLdb()

2.数据库连接器创建好后,在app目录下models.py模型文件中创建模型表:

from django.db import models

# Create your models here.


class User(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=20)
    age = models.IntegerField()

    def __str__(self):
        return ID%s-用户名:%s-年龄%s%    (self.id,self.name,self.age)

3.创建好模型后,使用manage.py管理工具生成迁移文件与映射到数据库中:

(py3env) [email protected]:~/PythonPorject/hello_django$ python manage.py makemigrations
Migrations for info:
  info/migrations/0001_initial.py
    - Create model User
(py3env) [email protected]:~/PythonPorject/hello_django$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, info, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying info.0001_initial... OK
  Applying sessions.0001_initial... OK

4.映射好数据库后,可在mysql中通过show tables;查看表是否创建成功,接进来对数据库进行插入数据.在app下views.py中:

 1 from django.shortcuts import render
 2 
 3 # Create your views here.
 4 from django.http import HttpResponse
 5 from .models import User
 6 
 7 def index(request):
 8     return render(request,info/index.html)
 9 
10 def add_user(request):
11     #方法一
12     # user = User()
13     # user.name = ‘蓝靓钦‘
14     # user.age = 18
15     # user.save()
16     #方法二
17     # user = User(name=‘remoting‘,age=18)
18     # user.save()
19     #方法三
20     # User.objects.create(name=‘lan‘,age=20)
21     #方法四 检查数据库是否已经存在,存在不添加不存在则添加数据
22     User.objects.get_or_create(name=lan,age=20)
23     return HttpResponse(插入数据)
24 
25 
26 def search_user(request):
27     # 查询所有数据
28     rs = User.objects.all()
29     print(rs)
30     #查询一条对象
31     rs = User.objects.get(id=2)
32     print(rs)
33     #查询满足条件的对象
34     rs = User.objects.filter(name=蓝靓钦)
35     print(rs)
36     return HttpResponse(查询数据)

 

5.配置urls.py进行分配路由调试:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r^index/$,views.index),
    url(r^add/$,views.add_user),
    url(r^search/$,views.search_user),
]

 

以上是关于Django连接数据库及数据操作的主要内容,如果未能解决你的问题,请参考以下文章

django框架的模型类定义及操作

043:Django使用原生SQL语句操作数据库

Django 第八课 4.MySQL数据库操作

10.Django-数据库操作与ORM模型

10.Django-数据库操作与ORM模型

关于django操作orm的一些事--反向生成orm连接多个数据库