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连接数据库及数据操作的主要内容,如果未能解决你的问题,请参考以下文章