当前位置: 首页 > news >正文

西安东郊网站建设首页标题在哪里打开

西安东郊网站建设,首页标题在哪里打开,做英文网站地图,免费推广appDjango-Model操作数据库(增删改查、连表结构)一、数据库操作1、创建model表基本结构from django.db importmodelsclassuserinfo(models.Model):#如果没有models.AutoField#xff0c;默认会创建一个id的自增列name models.CharField(max_length 30)emailmodels.EmailField()…Django-Model操作数据库(增删改查、连表结构)一、数据库操作1、创建model表基本结构from django.db importmodelsclassuserinfo(models.Model):#如果没有models.AutoField默认会创建一个id的自增列name models.CharField(max_length 30)emailmodels.EmailField()memo models.TextField()更多字段1 、models.AutoField  自增列 int ( 11)如果没有的话默认会生成一个名称为 id 的列如果要显示的自定义一个自增列必须将给列设置为主键 primary_keyTrue 。2、models.CharField  字符串字段必须 max_length 参数3 、models.BooleanField  布尔类型 tinyint( 1)不能为空BlankTrue4 、models.ComaSeparatedIntegerField  用逗号分割的数字 varchar继承CharField所以必须 max_lenght 参数5、models.DateField  日期类型 date对于参数auto_nowTrue 则每次更新都会更新这个时间auto_now_add 则只是第一次创建添加之后的更新不再改变。6、models.DateTimeField  日期类型 datetime同DateField的参数7 、models.Decimal  十进制小数类型 decimal必须指定整数位max_digits和小数位decimal_places8 、models.EmailField  字符串类型(正则表达式邮箱) varchar对字符串进行正则表达式9 、models.FloatField  浮点类型 double10、models.IntegerField  整形11、models.BigIntegerField  长整形integer_field_ranges{‘SmallIntegerField‘ :( - 32768 , 32767),‘IntegerField‘ :( - 2147483648 , 2147483647),‘BigIntegerField‘ :( - 9223372036854775808 , 9223372036854775807),‘PositiveSmallIntegerField‘ :( 0 , 32767),‘PositiveIntegerField‘ :( 0 , 2147483647),}12、models.IPAddressField  字符串类型(ip4正则表达式)13、models.GenericIPAddressField  字符串类型(ip4和ip6是可选的)参数protocol可以是both、ipv4、ipv6验证时会根据设置报错14、models.NullBooleanField  允许为空的布尔类型15、models.PositiveIntegerFiel  正Integer16、models.PositiveSmallIntegerField  正smallInteger17、models.SlugField  减号、下划线、字母、数字18、models.SmallIntegerField  数字数据库中的字段有tinyint、smallint、 int 、bigint19 、models.TextField  字符串 longtext20、models.TimeField  时间 HH:MM[:ss[.uuuuuu]]21、models.URLField  字符串地址正则表达式22、models.BinaryField  二进制23、models.ImageField图片24 、models.FilePathField文件更多参数1 、null True数据库中字段是否可以为空2 、blank Truedjango的Admin中添加数据时是否可允许空值3 、primary_key False主键对AutoField设置主键后就会代替原来的自增 id 列4、auto_now 和 auto_now_addauto_now 自动创建- - -无论添加或修改都是当前操作的时间auto_now_add 自动创建- - -永远是创建时的时间5、choicesGENDER_CHOICE((u‘M‘ , u ‘Male‘),(u‘F‘ , u ‘Female‘),)gender models.CharField(max_length 2 ,choices GENDER_CHOICE)6、max_length7、default  默认值8、verbose_name  Admin中字段的显示名称9 、name|db_column  数据库中的字段名称10 、unique True   不允许重复11 、db_index True   数据库索引12 、editable True   在Admin里是否可编辑13 、error_messages None   错误提示14 、auto_created False   自动创建15、help_text  在Admin中提示帮助信息16 、validators []17 、upload - to2、注册APPsettings添加app3、生成相应的表python manage.py makemigrationspython manage.py migrate4、admin后台注册表python manage.py createsuperuser 创建用户后台可以管理添加数据对数据进行增删改查查models.UserInfo.objects.all()models.UserInfo.objects.all().values(‘user‘) #只取user列models.UserInfo.objects.all().values_list(‘id‘,‘user‘) #取出id和user列并生成一个列表models.UserInfo.objects.get(id1)models.UserInfo.objects.get(user‘yangmv‘)成功获取数据增models.UserInfo.objects.create(user‘yangmv‘,pwd‘123456‘)或者obj models.UserInfo(user‘yangmv‘,pwd‘123456‘)obj.save()或者dic {‘user‘:‘yangmv‘,‘pwd‘:‘123456‘}models.UserInfo.objects.create(**dic)删models.UserInfo.objects.filter(user‘yangmv‘).delete()改models.UserInfo.objects.filter(user‘yangmv‘).update(pwd‘520‘)或者obj models.UserInfo.objects.get(user‘yangmv‘)obj.pwd ‘520‘obj.save()常用方法#获取个数##models.Tb1.objects.filter(name‘seven‘).count()#大于小于##models.Tb1.objects.filter(id__gt1) # 获取id大于1的值#models.Tb1.objects.filter(id__lt10) # 获取id小于10的值#models.Tb1.objects.filter(id__lt10, id__gt1) # 获取id大于1 且 小于10的值#in##models.Tb1.objects.filter(id__in[11, 22, 33]) # 获取id等于11、22、33的数据#models.Tb1.objects.exclude(id__in[11, 22, 33]) # not in#contains##models.Tb1.objects.filter(name__containsven)#models.Tb1.objects.filter(name__icontainsven) # icontains大小写不敏感#models.Tb1.objects.exclude(name__icontainsven)#range##models.Tb1.objects.filter(id__range[1, 2]) # 范围bettwen and#其他类似##startswithistartswith, endswith, iendswith,#order by##models.Tb1.objects.filter(name‘seven‘).order_by(‘id‘) # asc#models.Tb1.objects.filter(name‘seven‘).order_by(‘-id‘) # desc#limit 、offset##models.Tb1.objects.all()[10:20]#group byfrom django.db.models importCount, Min , Max , Sum#models.Tb1.objects.filter(c11).values(‘id‘).annotate(cCount(‘num‘))#SELECT app01_tb1.id, COUNT(app01_tb1.num) AS c FROM app01_tb1 WHERE app01_tb1.c1 1 GROUP BY app01_tb1.iddjango中models的filter过滤方法__gt大于__gte大于等于__lt小于__lte小于等于__in存在于一个list范围内__startswith以...开头__istartswith以...开头忽略大小写__endswith以...结尾__iendswith以...结尾忽略大小写__range在...范围内__year日期字段的年份__month日期字段的月份__day日期字段的日__isnullTrue/False__overlap集合至少有一个元素重合__contains集合包含__regex 匹配正则表达二、常用字段models.DateTimeField  日期类型 datetime参数auto_now True 则每次更新都会更新这个时间auto_now_add 则只是第一次创建添加之后的更新不再改变。classUserInfo(models.Model):name models.CharField(max_length 32)ctime models.DateTimeField(auto_now True )uptime models.DateTimeField(auto_now_add True )from web importmodelsdefhome(request):models.UserInfo.objects.create(name ‘yangmv‘)aftermodels.UserInfo.objects. all ()printafter[ 0 ].ctimereturn render(request, ‘home/home.html‘ )表结构的修改表结构修改后原来表中已存在的数据就会出现结构混乱makemigrations更新表的时候就会出错解决方法1、新增加的字段设置允许为空。生成表的时候之前数据新增加的字段就会为空。(nullTrue允许数据库中为空blankTrue允许admin后台中为空)2、新增加的字段设置一个默认值。生成表的时候之前的数据新增加字段就会应用这个默认值执行makemigrations migrate 后。老数据会自动应用新增加的规则models.ImageField 图片models.GenericIPAddressField IPip models.GenericIPAddressField(protocolipv4,nullTrue,blankTrue)img models.ImageField(nullTrue,blankTrue,upload_toupload)数据库中保存的只是图片的路径常用参数选择下拉框 choicesclassUserInfo(models.Model):USER_TYPE_LIST((1,‘user‘),(2,‘admin‘),)user_type models.IntegerField(choicesUSER_TYPE_LIST,default1)2、连表结构一对多models.ForeignKey(其他表)多对多models.ManyToManyField(其他表)一对一models.OneToOneField(其他表)应用场景一对多当一张表中创建一行数据时有一个单选的下拉框(可以被重复选择)例如创建用户信息时候需要选择一个用户类型【普通用户】【金牌用户】【铂金用户】等。多对多在某表中创建一行数据是有一个可以多选的下拉框例如创建用户信息需要为用户指定多个爱好一对一在某表中创建一行数据时有一个单选的下拉框(下拉框中的内容被用过一次就消失了例如原有含10列数据的一张表保存相关信息经过一段时间之后10列无法满足需求需要为原来的表再添加5列数据一对多classGame(models.Model):gname models.CharField(max_length 32)classHost(models.Model):hostname models.CharField(max_length 32)game models.ForeignKey( ‘Game‘ )这是Game表里面有3个业务这是主机表可以通过外键对应到Game表的业务的ID多对多classUserGroup(models.Model):group_name models.CharField(max_length 16)classUser(models.Model):name models.CharField(max_length 16)sex models.CharField(max_length 16)email models.EmailField(max_length 32)usergroup_user models.ManyToManyField( ‘UserGroup‘ )Django model会自动创建第3张关系表用于对应user id 和usergroup id这是UserGroup表这是User表这是Django自动生成的对应关系表user_id 1 为 yangmv同时属于1,2(技术部运营部)一对一 (一对多增加了不能重复)classUser2(models.Model):name models.CharField(max_length 16)sex models.CharField(max_length 16)email models.EmailField(max_length 32)classAdmin(models.Model):username models.CharField(max_length 32)password models.CharField(max_length 32)admin_user2 models.OneToOneField( ‘User2‘ )连接MysqlDATABASES {‘default‘:{‘ENGINE‘ : ‘django.db.backends.mysql‘,‘NAME‘ : ‘dbname‘,‘USER‘ : ‘root‘,‘PASSWORD‘ : ‘xxx‘,‘HOST‘ :‘‘,‘PORT‘ :‘‘,}}一对多操作实例首先生成2个表from django.db importmodelsclassGroup2(models.Model):caption models.CharField(max_length 32)classUser2(models.Model):username models.CharField(max_length 32)group2 models.ForeignKey( ‘Group2‘)input和select标签用forms生成先执行create_group生成3个group已经查询出Group数据添加方法1方法2defcreate_user(request):objForign.UserForm(request.POST)if request.method ‘POST‘:ifobj.is_valid():all_dataobj.clean()#print all_data#获取提交页面提交来的数据{‘username‘: u‘yang1‘, ‘usergroup‘: 1}#方法1先获取对象添加#group_obj models.Group2.objects.get(idall_data[‘usergroup‘])#models.User2.objects.create(usernameall_data[‘username‘],usergroupgroup_obj)#方法2(推荐)models.User2.objects.create(username all_data[ ‘username‘ ],group2_id all_data[ ‘usergroup‘])#django会自动把数据库group2变为group2_idelse:errorobj.errorsprint error[ ‘username‘][ 0 ]print error[ ‘usergroup‘][ 0 ]return render(request, ‘forign/create_user.html‘ ,{ ‘obj‘ :obj})方法3defcreate_user(request):objForign.UserForm(request.POST)if request.method ‘POST‘:ifobj.is_valid():all_dataobj.clean()#print all_data#获取提交页面提交来的数据{‘username‘: u‘yang1‘, ‘usergroup‘: 1}#方法1先获取对象添加#group_obj models.Group2.objects.get(idall_data[‘usergroup‘])#models.User2.objects.create(usernameall_data[‘username‘],usergroupgroup_obj)#方法2(推荐)#models.User2.objects.create(usernameall_data[‘username‘],group2_idall_data[‘usergroup‘])#django会自动把数据库group2变为group2_id#方法3(推荐)models.User2.objects.create( * *all_data)printmodels.User2.objects. all ().count()else:pass#error obj.errors#print error[‘username‘][0]#print error[‘usergroup_id‘][0]return render(request, ‘forign/create_user.html‘ ,{ ‘obj‘ :obj})查询。展示出所有的数据defcreate_user(request):objForign.UserForm(request.POST)if request.method ‘POST‘:ifobj.is_valid():all_dataobj.clean()#方法3(推荐)models.User2.objects.create( * *all_data)printmodels.User2.objects. all ().count()else:passuser_listmodels.User2.objects. all ()return render(request, ‘forign/create_user.html‘ ,{ ‘obj‘ :obj, ‘user_list‘ :user_list}) table border1{% for item in user_list %} tr td {{ item.username }} td td {{ item.group2.caption }} td tr {% endfor %} table GET方式查询defcreate_user(request):objForign.UserForm(request.POST)if request.method ‘POST‘:ifobj.is_valid():all_dataobj.clean()#方法3(推荐)models.User2.objects.create( * *all_data)printmodels.User2.objects. all ().count()else:pass#查用户get_user request.GET.get( ‘username‘)user_list models.User2.objects. filter (username get_user)return render(request, ‘forign/create_user.html‘ ,{ ‘obj‘ :obj, ‘user_list‘:user_list})#查组get_val request.GET.get( ‘group‘)user_list models.User2.objects. filter (group2__caption get_val)一对多跨表操作总结1、group2对应的是一个对象2、创建数据 group2_id 直接查询数据库3、获取数据通过. group2.caption4、查询数据通过__ group2__caption
http://www.huolong8.cn/news/45825/

相关文章:

  • 济阳做网站技术网站源码wordpress
  • 支付网站搭建手机站是什么意思
  • 手袋 技术支持 东莞网站建设全民建网站
  • 自适应 网站开发申请带域名的免费空间
  • 网站跳出率是什么意思百度手机助手下载2022新版
  • 嘉兴网站制作网站建设rdm响应式网站开发
  • 新办公司网上核名在哪个网站做下载app浏览器
  • 一个网站如何工作流程游戏推广是做什么的
  • 织梦淘宝客网站爱站网官网关键词
  • Wordpress导航标签icon企业网站seo推广
  • 浦东做网站的公司哪些群体对网站开发有需求
  • 城乡建设部网站首页大连建设网站
  • 用老薛主机做网站wordpress卢松松自适应
  • 网站开发流程php网页开发基础实验总结
  • 网站收录在下降开源的网站后台程序
  • 公司建设网站费用会计怎么记seo网站优化流程
  • 网站建设建站公司ps做的网站图片好大
  • 网站打赏怎么做的被邀请做刷客会不会碰到钓鱼网站
  • 网站制作网站建设单位前端做网站需要学什么软件
  • 设计服务网站做网站浏览器
  • 巴塘网站建设尚义住房和城乡规划建设局网站
  • 免费微网站系统源码怎样用服务器做网站
  • 做网站技术人员林业建设协会网站
  • 网站建设与管理方向辽宁省城乡和建设厅网站
  • 陕西高端建设网站开封网站建设公司
  • 湖北省勘察设计协会网站微信公众平台登录界面
  • 江苏同邦建设有限公司网站wordpress大前端下载
  • 单位网站建设情况从seo角度去建设网站
  • 搜狗推广做网站要钱吗容桂营销网站建设
  • 网站开发技术交流群购物网站建设 成都