手机网站多少钱一个,网站建设后怎么,后端开发技术,有限责任公司是私企吗文章目录 连接Mysql数据库安装Mysql驱动配置数据库信息明确连接驱动定义模型在模型下的models.py中定义表对象在settings.py 中找到INSTALLED_APPS添加创建的模型 测试testdb.py中写增删改查操作urls.py添加请求路径启动项目进行测试 连接Mysql数据库
安装Mysql驱动
pip inst… 文章目录 连接Mysql数据库安装Mysql驱动配置数据库信息明确连接驱动定义模型在模型下的models.py中定义表对象在settings.py 中找到INSTALLED_APPS添加创建的模型 测试testdb.py中写增删改查操作urls.py添加请求路径启动项目进行测试 连接Mysql数据库
安装Mysql驱动
pip install pymysqlDjango 模型使用自带的 ORM。
对象关系映射Object Relational Mapping简称 ORM 用于实现面向对象编程语言里不同类型系统的数据之间的转换。
ORM 在业务逻辑层和数据库层之间充当了桥梁的作用。
ORM 是通过使用描述对象和数据库之间的映射的元数据将程序中的对象自动持久化到数据库中。
配置数据库信息
在settings.py中找到DATABASES定义要连接的数据库信息
DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: rcdb,HOST: 127.0.0.1,PORT: 3306,USER: youMysqlUser,PASSWORD: root}
}明确连接驱动
在settings.py同级中的__init__.py中进行配置
import pymysql
pymysql.install_as_MySQLdb()定义模型
Django使用模型时必须新建一个app,使用下列命令创建
django-admin startapp TestModel在模型下的models.py中定义表对象
如果要连接多个表
from django.db import models# Create your models here.
class Test(models.Model):name models.CharField(max_length20)class Book(models.Model):id models.AutoField(primary_keyTrue)title models.CharField(max_length32)price models.DecimalField(max_digits5,decimal_places2)publish models.CharField(max_length32)pub_date models.DateField()authors models.ManyToManyField(Author)class Publish(models.Model):name models.CharField(max_length32)city models.CharField(max_length64)email models.EmailField()class Author(models.Model):name models.CharField(max_length32)age models.SmallIntegerField()au_detail models.OneToOneField(AuthorDetail,on_deletemodels.CASCADE)class AuthorDetail(models.Model):gender_choices ((0,女),(1,男),(2,保密),)gender models.SmallIntegerField(choicesgender_choices)tel models.CharField(max_length32)addr models.CharField(max_length64)birthday models.DateField()
以上的类名代表了数据库表名且继承了models.Model类里面的字段代表数据表中的字段(name)数据类型则由CharField相当于varchar、DateField相当于datetime max_length 参数限定长度。
在settings.py 中找到INSTALLED_APPS添加创建的模型
INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,TestModel, # 本次新创建模型
]以上步骤便定义好了项目的数据模型可在项目中创建testdb.py中进行测试
测试
testdb.py中写增删改查操作
# -*- coding: utf-8 -*-
from django.http import HttpResponse
from TestModel.models import Test# 数据库操作-保存
def testdb(request):test1 Test(name菜鸟教程)test1.save()return HttpResponse(p数据库添加成功/p)# 数据库操作-查询
def testdb_select(request):# 初始化response response1 # 通过objects这个模型管理器的all获得所有数据行相当于SQL中的SELECT * FROMlistTest Test.objects.all()# filter相当于SQL中的WHERE,可设置条件过滤结果response2 Test.objects.filter(id1)# 获取单个对象respone3 Test.objects.get(id1)# 限制返回的数据 相当于SQL中的 OFFSET 0 LIMIT 2;Test.objects.order_by(id)# 上面的方法可以连锁使用Test.objects.filter(name菜鸟教程).order_by(id)# 输出所有的数据for var in listTest:response1 var.name response response1return HttpResponse(presponse/p)def testdb_update(request):test1 Test.objects.get(id1)test1.name Googletest1.save()#另外一种方式#Test.objects.filter(id1).update(nameGoogle)#修改所有的列#Test.objects.all().update(nameGoogle)return HttpResponse(p修改成功/p)def testdb_del(request):test1 Test.objects.get(id1)test1.delete()#另外一种方式#Test.objects.filter(id1).delete()#删除所有数据#Test.objects.all().delete()return HttpResponse(p删除成功/p)urls.py添加请求路径
from django.contrib import admin
from django.urls import path
from . import views
from . import views,testdburlpatterns [path(admin/, admin.site.urls),path(,views.hello,namehello),path(hello/,views.index),path(testdb/,testdb.testdb),path(selectTest/,testdb.testdb_select),path(updateTest/,testdb.testdb_update),path(delTest/,testdb.testdb_del),
]启动项目进行测试
python manage.py runserver:0.0.0.0:8099