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

任丘网站优化接任务做兼职的的网站

任丘网站优化,接任务做兼职的的网站,学校网站建设源代码,泰安58同城二手房一、过滤器 1.1 编写步骤 1 注册app2 在某个app下#xff1a;创建templatetags模块(模块名只能是templatetags#xff09;3 在包下写一个py文件#xff0c;随便命名 在py文件中#xff1a;写入 from django import templateregister template.Library() #xff08;注创建templatetags模块(模块名只能是templatetags3 在包下写一个py文件随便命名 在py文件中写入 from django import templateregister template.Library() 注register的名字是固定的,不可改变      5 定义自己的标签或过滤器 register.filter def filter_words(content: str) - str:l [妈的, 傻逼, 退游]# 把content中所有关键词替换返回for item in l:content content.replace(item, **)return contentregister.simple_tag def my_input(id,arg):result input typetext id%s class%s / %(id,arg)return mark_safe(result)     6. 在模板中使用 {% load common_filter %}       使用 p{{ content|filter_words}}/p   {% my_input 7 red %} 二、 模型层 2.1 基本使用 2.1.1 orm框架---》对象关系映射 程序中一个个类一个个对象  以后数据库中一张表---》对应程序中一个类  以后数据库中一条记录--》对应程序中一个对象 2.1.2  数据库表中字段有很多类型 intvarchartext 程序的类中---》字段--》有很多类型 CharField DecimalField 2.1.3 写类与执行命令 1.写一个类 class Book(models.Model):id models.AutoField(primary_keyTrue)title models.CharField(max_length64, nullFalse)price models.DecimalField(max_digits7, decimal_places2)  2. 执行命令 python manage.py makemigrations python manage.py migrate 2.2  常用字段 AutoField(Field)     - int自增列必须填入参数 primary_keyTrue BigAutoField(AutoField)     - bigint自增列必须填入参数 primary_keyTrue     注当model中如果没有自增列则自动会创建一个列名为id的列     from django.db import models     class UserInfo(models.Model):         # 自动创建一个列名为id的且为自增的整数列         username models.CharField(max_length32)     class Group(models.Model):         # 自定义自增列         nid models.AutoField(primary_keyTrue)         name models.CharField(max_length32) SmallIntegerField(IntegerField):     - 小整数 -32768 32767 PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)     - 正小整数 0 32767 IntegerField(Field)     - 整数列(有符号的) -2147483648 2147483647 PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)     - 正整数 0 2147483647 BigIntegerField(IntegerField):     - 长整型(有符号的) -9223372036854775808 9223372036854775807 BooleanField(Field)     - 布尔值类型 NullBooleanField(Field):     - 可以为空的布尔值 CharField(Field)     - 字符类型     - 必须提供max_length参数 max_length表示字符长度 TextField(Field)     - 文本类型 EmailField(CharField)     - 字符串类型Django Admin以及ModelForm中提供验证机制 IPAddressField(Field)     - 字符串类型Django Admin以及ModelForm中提供验证 IPV4 机制 URLField(CharField)     - 字符串类型Django Admin以及ModelForm中提供验证 URL SlugField(CharField)     - 字符串类型Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符减号 CommaSeparatedIntegerField(CharField)     - 字符串类型格式必须为逗号分割的数字 UUIDField(Field)     - 字符串类型Django Admin以及ModelForm中提供对UUID格式的验证 FilePathField(Field)     - 字符串Django Admin以及ModelForm中提供读取文件夹下文件的功能     - 参数             path,                      文件夹路径             matchNone,                正则匹配             recursiveFalse,           递归下面的文件夹             allow_filesTrue,          允许文件             allow_foldersFalse,       允许文件夹 FileField(Field)     - 字符串路径保存在数据库文件上传到指定目录     - 参数         upload_to      上传文件的保存路径         storage None      存储组件默认django.core.files.storage.FileSystemStorage ImageField(FileField)     - 字符串路径保存在数据库文件上传到指定目录     - 参数         upload_to      上传文件的保存路径         storage None      存储组件默认django.core.files.storage.FileSystemStorage         width_fieldNone,   上传图片的高度保存的数据库字段名字符串         height_fieldNone   上传图片的宽度保存的数据库字段名字符串 DateTimeField(DateField)     - 日期时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] DateField(DateTimeCheckMixin, Field)     - 日期格式      YYYY-MM-DD TimeField(DateTimeCheckMixin, Field)     - 时间格式      HH:MM[:ss[.uuuuuu]] DurationField(Field)     - 长整数时间间隔数据库中按照bigint存储ORM中获取的值为datetime.timedelta类型 FloatField(Field)     - 浮点型 DecimalField(Field)     - 10进制小数     - 参数         max_digits小数总长度         decimal_places小数位长度 BinaryField(Field)     - 二进制类型 2.4 常用非常用字段参数 # null 如果为TrueDjango 将用NULL 来在数据库中存储空值。 默认值是 False. # blank 后台管理---》admin中会用咱们一般用的少 如果为True该字段允许不填。默认为False。 要注意这与 null 不同。null纯粹是数据库范畴的而 blank 是数据验证范畴的。 如果一个字段的blankTrue表单的验证将允许该字段是空值。如果字段的blankFalse该字段就是必填的。   # default 字段的默认值。可以是一个值或者可调用对象。如果可调用 每有新对象被创建它都会被调用。   # primary_key 如果为True那么这个字段就是模型的主键。如果你没有指定任何一个字段的primary_keyTrue Django 就会自动添加一个IntegerField字段做为主键所以除非你想覆盖默认的主键行为 否则没必要设置任何一个字段的primary_keyTrue。   # unique 如果该值设置为 True, 这个数据字段的值在整张表中必须是唯一的 # db_index 该字段建立索引 # choices 由二元组组成的一个可迭代对象例如列表或元组用来给字段提供选择项。 如果设置了choices 默认的表单将是一个选择框而不是标准的文本框br而且这个选择框的选项就是choices 中的选项。 get_type_book_display() # 关于Meta中 class UserInfo(models.Model):        nid models.AutoField(primary_keyTrue,indexTrue)        username models.CharField(max_length32)        mobilemodels.CharField(max_length32)        class Meta:            # 数据库中生成的表名称 默认 app名称 下划线 类名            db_table table_name            # 联合索引            index_together [                (username, mobile),            ]            # 联合唯一索引            unique_together ((username, mobile),)            # admin中显示的表名称            verbose_name图书表            # verbose_name加s            verbose_name_plural 2.5  settings配置 orm 可以操作sqlitemysqloraclepostgresql。。。。 # 配置文件中的配置 ### 默认配置操作sqlite DATABASES {     default: {         ENGINE: django.db.backends.sqlite3,         NAME: BASE_DIR / db.sqlite_lqz,     } } #### 操作mysql # 配置文件 DATABASES {     default: {         ENGINE: django.db.backends.mysql,         NAME: day05,         HOST:127.0.0.1,         PORT:3306,         USER:root,         PASSWORD:1234,     } } #装模块pymsql模块mysqlclient     pip3 install mysqlclient #其他不需要任何操作----》有可能在你机器装不上mac     pip3 install pymysql --upgrade     # 保证它执行放在配置文件中     import pymysql     pymysql.install_as_MySQLdb() 2.6  基本操作(增加删除字段增加记录删除记录查询记录) 增加删除字段只需要在表模型增加注释字段增加删除字段参数再迁移就可以了     -不要轻易删除迁移记录       增加表记录     # 方案一     Book.object.create()     #方案二     bookBook(参数)     book.save()  删除记录     -删除方式一查出来再删         Book.objects.all().delete()     -删除方式二         #可以重写类中得delete方法         bookBook.objects.filter(pk1).first()         book.delete() #Book 类中有个delete方法咱们没有写---》父类的--》可以重写  更新     -更新方式一查出来再删         Book.objects.all().update()     -更新方式二             bookBook.objects.filter(pk1).first()         book.namess         book.save()         查 # all():                  查询所有结果 # filter(**kwargs):       它包含了与所给筛选条件相匹配的对象 # get(**kwargs):          返回与所给筛选条件相匹配的对象返回结果有且只有一个如果符合筛选条件的对象超过一个或者没有都会抛出错误。    # exclude(**kwargs):      它包含了与所给筛选条件不匹配的对象   # order_by(*field):       对查询结果排序(-id)    # reverse():              对查询结果反向排序    # count():                返回数据库中匹配查询(QuerySet)的对象数量。    # first():                返回第一条记录    # last():                返回最后一条记录    # exists():              如果QuerySet包含数据就返回True否则返回False   #values(*field):        返回一个ValueQuerySet——一个特殊的QuerySet运行后得到的并不是一系列                             model的实例化对象而是一个可迭代的字典序列 #values_list(*field):   它与values()非常相似它返回的是一个元组序列values返回的是一个字典序列 # distinct():            从返回结果中剔除重复纪录 2.7  多表操作-创建关系 class Book(models.Model):     name models.CharField(max_length32)     price models.DecimalField(max_digits5, decimal_places2)     publish_date models.DateField()     publish models.ForeignKey(toPublish,on_deletemodels.CASCADE)     #这不是个字段     authorsmodels.ManyToManyField(toAuthor)     def __str__(self):         return self.name class Author(models.Model):     name models.CharField(max_length32)     age models.IntegerField()     author_detail models.OneToOneField(toAuthorDatail,uniqueTrue,on_deletemodels.CASCADE) class AuthorDatail(models.Model):     telephone models.BigIntegerField()     birthday models.DateField()     addr models.CharField(max_length64) class Publish(models.Model):     name models.CharField(max_length32)     city models.CharField(max_length32)     email models.EmailField()     关联关系有如下几种     - 一对一本质就是一对多只不过多的字段唯一     -一对多:外键关联     -多对多必须要有中间表             #  OneToOneFieldForeignKey 必须写on_delete不写报错     on_delete可选的参数有哪些         #1 models.CASCADE  级联删除---》删除出版社---》当前出版社下所有的图书数据都会被删除         #2  models.SET_NULL 删除出版社---》当前出版社下所有的图书数据都会的publish_id字段都是置为空         publish models.ForeignKey(toPublish,on_deletemodels.SET_NULL,nullTrue)         #3  models.SET_DEFAULT 删除出版社---》当前出版社下所有的图书数据都会的publish_id字段都设为默认值         publish models.ForeignKey(toPublish,on_deletemodels.SET_DEFAULT,default1)         #4  models.SET(值/可调用对象)删除出版社---》当前出版社下所有的图书数据都会的publish_id字段都设为SET传入的值如果是可调用对象会执行可调用对象把return变        # 5 models.DO_NOTHING 删除出版社---》当前出版社下所有的图书数据都会的publish_id字段 原封不动         publish models.ForeignKey(toPublish,on_deletemodels.DO_NOTHING,db_constraintFalse) 2.8 基于对象的跨表查询 假设拿到book对象     book.name     book.price     book.publish_id ----数字---》出版社id号---》咱们可以通过出版社id再去出版社表查出当前出版社---》很麻烦     -----快捷方式-----     book.publish----拿到的是   publish对象---》当前图书的出版社对象     book.publish.继续往后点击      上面这种查询方式称之为基于对象的跨表查询     对象对象.字段     publishbook.pulish       有正向查询和 反向查询---》拿到的都是对象     -正向当前表中有那个字段类似于book.pulish   author.author_detail         -通过字段     -反向当前表中没有那个字段      author_detail.author           通过author_detail拿到author         -通过表名小写     一对一正反向     太简单  一对多和多对多的正反向      正向简单         publishbook.pulish      反向         publish对象---》拿到当前publish对象下所有出版过的图书--反向查询         puhlish.book_set.all() # 如果是反向多条就要用  表名小写_set.all()  多对多正反向     # 正向 拿到当前图书所有作者     book.authors.all()  # 正向--》对象.字段.all()     # 反向  拿到当前作者写的所有图书     author.book_set.all() #反向--》多条就要用  表名小写_set.all()
http://www.pierceye.com/news/164831/

相关文章:

  • 众筹网站哪家好网站免费推广怎么做
  • 搜狗站长线上营销策划方案
  • goggle营销型网站效果网站建设的种类
  • 建设银行网站注册企业类似返利网的网站建设
  • pc端网站建设碳晶板全屋装修的利和弊
  • 网站开发层次wordpress源码之家
  • 农产品电商网站建设的总体目标阿里云域名注册入口官网
  • 义乌个人兼职做建设网站做网站月收入多少
  • 福州网站seo优化公司徐州百度运营中心
  • 做网站需要用到ps吗中国十大最强装饰公司
  • 网站建设盈利去除wordpress rss图标
  • 网站策划书的基本内容东莞工程建设交易中心网
  • 免费推广网站入口2022静态网站开发外文文献
  • 如何做服装微商城网站建设网站开发设计中的收获
  • 网站开发详细设计文档模板网站建设设计工具
  • 网站建设项目资金申请wordpress主题美容
  • 专门做财经的网站软件开发都有哪些项目
  • 湛江网站制作多少钱建网站程序工具
  • 四川省乐山市建设银行网站一级门户网站建设费用
  • 六安网站制作哪里有网站备案网站
  • 石家庄手机网站建设公司wordpress媒体库难用
  • wordpress上传完了周口seo 网站
  • 广州网站建设技术方案建设宠物网站的目的
  • 邢台网站维护网络营销推广方法及分类
  • 做网站买过域名之后门户网站建设公司报价
  • 广告网站设计公司好吗重庆在线app
  • 深圳网站建设哪家公司便宜网站一般用什么语言做
  • 网站平台建设所需开发工具成都麦卡网络做网站开发怎么样
  • 可以做网站的电脑软件济南网页设计
  • 推广网站制作网站建设代理怎么做