Python后台开发Django(数据库)

Python后台开发Django(数据库),第1张

概述如果使用pymysql,则可以在view中直接import pymysql进行 *** 作,与原 *** 作无区别 Django数据库框架支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在s

如果使用pyMysqL,则可以在vIEw中直接import pyMysqL进行 *** 作,与原 *** 作无区别

Django数据库框架支持 sqlite3,MysqL,Postgresql等数据库,只需要在settings.py中配置即可,与数据库相关的代码一般写在models.py中

配置MysqL

ORM *** 作:默认使用文件自带的db.sqlite3数据库,如果需要使用MysqL数据库则需要进行以下配置

在setting.py中替换数据库配置

@H_301_12@
DATABASES = {    'default': {    ENGINE': django.db.backends.MysqL,name':dbnameUSERrootPASSWORDxxxHOST''PORTimport pyMysqLpyMysqL.install_as_MysqLdb()
表的基本 *** 作

创建表

在对应APP的models.py中,如果创建多表则在此文件中添加类即可

@H_301_12@
#表名为dongapp2_tbuser#属性为字段名,默认会创建主键为自增ID列修改ID列的字段名:IDdong=models.autoFIEld(primary_key=True)class Tbuser(models.Model):    userx=models.CharFIEld(max_length=32) 类型为:varchar(32)    passwd=models.CharFIEld(max_length=64)可以添加实参【null=True】,表示值可以为空    age=models.IntegerFIEld() 类型为:integer
settings.py的INSTALLED_APPS=[  ]注册,添加APP的名字
@H_301_12@
dongapp2',
命令行进入APP目录,执行下面两条命令:
@H_301_12@
python ../manage.py makemigrationspython ../manage.py migrate

修改表

在修改或者删除字段时都需要进行两条命令的执行,models.py中的数据库映射时时刻刻绑定着原数据,执行两条命令后会进行数据表结构同步

字段数据类型补充

所设置的字段类型大部分是不会在编写增删改查时进行自动验证,而是有益于Django自带的admin管理后台应用

@H_301_12@
xx=models.EmailFIEld(null=True)邮箱格式,Django自带用户管理页使用xx=models.URLFIEld(null=True)URL格式xx=models.GenericIPAddressFIEld(null=True)IP4或者IP6格式xx=models.BooleanFIEld()bool类型xx=models.floatFIEld()浮动数xx=models.DateFIEld()类似于data =>YYYY-MM-DDxx=models.DateTimeFIEld()类似于datatime =>YYYY-MM-DD HH:mm:ssxx=models.TimeFIEld() 时间

字段实参:

null             #是否可为空,默认不可为空,如【unll=True】可为空

default          #默认值

primary_key     #主键

db_column      #数据库中数据表的字段名

db_index        #是否建立索引

auto_Now_add   #创建当前行时自动添加为当前时间,【xx=models.DateTimeFIEld(auto_Now_add=True)】

auto_Now       #更新当前行时自动更新为当前时间,仅支持下面的更新数据方法二

外键

在建立表字段时添加,外键字段在数据库中为:forekx_ID
@H_301_12@
forekx=models.ForeignKey("另一个表的类名",to_fIEld=另一个表类的字段名,默认为ID字段默认值")
在数据获取中进行跨表取数据
@H_301_12@
resx = models.Tbuser.objects.filter(ID=3).first()resx.forekx.另一个表类的任意字段名   resx.forekx为另外表的一行数据对象
添加/修改外键字段的值
@H_301_12@
方法一forekx_ID=11方法二forekx=models.XxxxXC.objects.filter(ldong=dongxiao").first()
数据增删改查

数据的 *** 作一般会在 vIEw(业务处理)中进行

添加数据

@H_301_12@
1 from dongapp2  models2 方法一3 models.Tbuser.objects.create(userx=dong21234562)4 方法二5 datax=models.Tbuser(userx="dong3",passwd="1234563",age=20)6 datax.save()

查询数据

Filter条件补充:ID字段大于等于0:【ID__gt=0】

@H_301_12@
 1  2  3 查询并输出列表 4  # resx=models.Tbuser.objects.all()#查询所有,查询结果为[对象,对象] 5  resx = models.Tbuser.objects.filter(userx="dong1",age=10)  # 条件查询,and 6  countx = len(resx)  # 得到查询的总行数 7  for rowx in resx:  # 循环输出值,控制台接收(开启服务的地方) 8     print(rowx.ID,rowx.userx,rowx.age) 9  resx=models.Tbuser.objects.all().values("ID","name")#查询所有并获取指定字段数据,查询结果[字典,字典]10 11  查询第一个,返回非列表12  resx = models.Tbuser.objects.filter(ID=3).first()13  if resx:14     print(resx.age)15 16 返回查找的总行数17 resx = models.Tbuser.objects.filter(passwd=").count()

删除数据

@H_301_12@
 modelsresx = models.Tbuser.objects.filter(ID=1).delete()

更新数据

@H_301_12@
方法一resx = models.Tbuser.objects.filter(ID=3).update(age=30方法二resxobj = models.Tbuser.objects.filter(ID=3).first()resxobj.age=100resxobj.save()
总结

以上是内存溢出为你收集整理的Python后台开发Django(数据库)全部内容,希望文章能够帮你解决Python后台开发Django(数据库)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189829.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存