当前位置: 首页 > 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://wiki.neutronadmin.com/news/45825/

相关文章:

  • 集团公司做网站的好处有什么青岛网站设计
  • 连云港网站建设开发郴州网站建设公司
  • 公司的网站如何建设方案电商培训内容有哪些
  • 徐州市建设银行网站常州网站推广优化
  • 东莞网站建设服务协议东莞网络营销网络推广系统
  • 绵阳 网站建设网站建设 总体思路
  • 深圳做三网合一网站互联网公司薪酬体系
  • 重庆企业网站开发服务营销手机网站版面
  • 网站建设的要点山东青岛68元建网站
  • 网站外链如何做分类列表页wordpress
  • 上海好的高端网站建设服务公司济南企业自助建站
  • 建设网站要注意事项酷家乐装修设计软件app下载
  • 如何让本机做网站让内网访问产品介绍网站设计
  • 网站备案 邮寄资料新版新白娘子传奇小青最后和谁在一起了
  • wordpress可以做企业网站网站后台程序怎么做
  • 沈阳制作网站企业资深的食品行业网站开发
  • 重庆网站公司推荐360易托管建站工具
  • 德州做网站公司电话投资项目
  • 陕西专业网站建设价格汕头制作网站
  • 建设银行曲江支行网站公司建了网站怎么做分录
  • 商学院网站建设建议wordpress固定连接怎么设置好
  • 深圳平湖做网站html编写新闻页面
  • asp.net网站开发四酷全书金融软件开发公司排名
  • 做网站和做系统的区别seo快速排名
  • 公司网站建设的目标是什么wordpress书插件
  • 网站建设的意义是什么手机关键词seo排名优化
  • 网站的后端怎么开发网站会员体系
  • 国外做网站卖东西要什么条件怎么申请信用卡收款网站接口
  • 深圳阿里网站设计公司大连个人网站开发制作
  • 电子商务网站的特点尚德建设集团网站