欢迎来到咨信网! | 成为共赢成为共赢 咨信网助力知识提升 | 自信网络旗下运营:咨信网 自信AI创作助手 自信AI导航
咨信网
全部分类
  • 包罗万象   教育专区 >
  • 品牌综合   考试专区 >
  • 管理财经   行业资料 >
  • 环境建筑   通信科技 >
  • 法律文献   文学艺术 >
  • 学术论文   百科休闲 >
  • 应用文书   研究报告 >
  • ImageVerifierCode 换一换
    首页 咨信网 > 资源分类 > PDF文档下载
    分享到微信 分享到微博 分享到QQ空间

    PythonWeb开发基础教程 第7章 表单.pdf

    • 资源ID:225142       资源大小:1.33MB        全文页数:55页
    • 资源格式: PDF        下载积分:19金币
    微信登录下载
    验证码下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    二维码
    微信扫一扫登录
    下载资源需要19金币
    邮箱/手机:
    验证码: 获取验证码
    温馨提示:
    支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    VIP下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    声明    |    会员权益      获赠5币      写作写作
    1、填表:    下载求助     索取发票    退款申请
    2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
    6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    7、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

    PythonWeb开发基础教程 第7章 表单.pdf

    1、Python Web开发基础教程(Django版)第7章表单本章主要内容:,表单基础,Django表单进阶 模型表单资源Ajax7.1表单基础本节主要内容HTML表单 Django 表单7.1.1 HTML 表单 一个典型的HTML表单如下。label foXdata,请输入数据:v/label input type=submit value二“提交“,该表单由静态HTML实现,要直接在浏览器中访问该表单,需将其放在Django项目的static文件夹币。静态资源配置的详细内容请参考2.L4节。个表单主要包括提交地址、请求方法和表单元素三个 部分。表单的action属性指定的URL为提交地址,

    2、它接收表单数 据,并执行相应的处理。表单的method属性指定请求方法,通常是GET或POST。通常在不改变服务器数据时用GET方法,提交的数据 会显示在URL中。要改变服务器数据时用POST方法,提交的数据封装在消 息栋中。-qango项目的模板文件是一个HTML文件,可在其中定义HTML表单。可通过视图将数据传递给 横板,然后使用模板变量将其填充到HTML表单。Django模板中的HTML表单典型结构如下。,%csrf_token%,请输入数据:,input type=submit value=提交 个current_data 变量。相比于前面的HTML表单,模板中多了一个%csrf_to

    3、ken%标签和一将此模板(temform.html)放在项目的templates文件夹中,以便在视图中使用。,默认情况下,必ango会对所有的POST请求执行CSRF(跨站点请求伪造)保护。%csrf_token%标签用于获敢CSRF令牌,如果没有该标签,Django会拒绝表单请求。current_data 用于将视图传递给模板的数据插入到当前位置。7.1.2 Django 表单,模板中的HTML表单属于静态编码,要改变表单就必须修 改模板。Djang9表单通过扩展django.forms.Form类可在视图中动 态生成表单。使用Django表单的基本步骤包括:定义表单类 定义使用表单类和模板

    4、的视图 定义表单模板 配置URL访问视图1.定义表单类#c h a pte ryc h a pte ryv i e ws.py from django import forms,class dataForm(forms.Form):data=forms.CharField(label=请输入数据)自定义的表单类dataForm继承了django.forms.Form类,它包含一个data字段。字段 data 的类型为forms.CharField。表单data字段会被渲染为一个label元素和一个input元素。表单字段的label参数指定在表单渲染生成的label元素中显示的字符串。2.定义

    5、使用表单类和模板的视 在视图中需要创建表单类的实例对象,并将其作为参数传递给模板,代码如下。,def useDataForm(request):,if request.method=TOST1:form=dataForm(request.POST)#使用接收到的数据创建表单 msg二”已完成数据提交!”,else:,form=dataForm()#创建空白表单,msgJ初始表单,,return render(requestz temdataform-html,form1:form/msgimsg)在直接使用HTML表单时,视图将接收到的数据传递给模板,以便在响应页面中回显数据。在使用qjang

    6、o表单时,视图使用接收到的数据创建表单,先将数据填入表单字段,再将表单对 象传递络模斐。3.定义表单模板 模板通过变量使用视图传递的表单对象,代码如下。%csrf_token%form input type=submit”value二“提交“msg4.配置URL访问视图 URL配置代码如下。from django.urls import path from.import views u ripatterns=pathCdform/,views.useDataForm),7.2 Django表单进阶本节主要内容 表单字段渲染方式 表单字段类型和参数,使用小部件 字段校验.使用表单数据 手动渲染字

    7、段 遍历字段 表单集7.2.1表单字段渲染方式 Django提供了 3种表单字段渲染方式。(form.as_table:表单式样式,默认方式。将字段渲染为 包装在表格tr元素中的表单元素。-form.as_p 段落样式,将字段渲染为包装在p元素中的段落。form.as_ul:列表样式,将字段渲染为包装在元素中 的列表项。7.2.2表单字段类型和参数 表单字段的定义包含字段名、字段类型和字段参数3个部分,示例如下。class dataForm(forms.Forin):data=forms.CharField(label=请输入数据)#定义表单字段 其中,data为字段名,字段渲染生成的labe

    8、l元素的for属性值为id_data”,生成的input元素的name属桂值为“data”、id庸性值为id_data”。CharField为字段类型,label为字段参数。一 django.forms模块定义了一系列字段类来描述表单字段的类型。字段类型决定了Django如何执行下列操作。字段被渲染成哪种HTML表单元素。是否必须为字段提供数据。默认情况下,所有类型的字段都必须提交数据。如何校验字段数据。如何将数据规范化为Python数据。表7-1常用表单字段类字段类默认渲染成的表单兀素Python数据的类型BooleanFieldCheckboxinputTrue 或 FalseCharFi

    9、eldTextinput字符串ChoiceFieldSelect字符串DateFieldDateinputdatetime.dateTimeFieldTimeinputdatetime.timeDecimalFieldNumberinput(未本地化时)或TextinputdecimalFloatFieldNumberinput(未本地化时)或TextinputfloatIntegerFieldNumberinput(未本地化时)或Textinputinteger默认渲染成的表单元素Python数据的类型字段类EmailFieldEmailinput字符串FileFieldClearableF

    10、ilelnput上传的文件FilePathFieldSelect字符串ImageFieldClearableFilelnput上传的图片文件GenericIPAddressFieldTextinput字符串MultipleChoiceFieldSelectMultiple字符串列表RegexFieldTextinput字符串UUlDFieldTextinputUUID1.required默认情况下,所有类型的表单字段的required属性值 均为True,即必须为字段提供数据。如果提供的是 None或空字符串,校验数据时会触发ValidationError 异常。表单字段的clean。方法用于

    11、执行数据清理操作,验证 数据的有效性。数据有效时,clean。方法会返回该数 据,否则触发ValidationError异常。2.labellabel参数用于设置表单字段被渲染为HTML 元素时的文本内容,示例代码如下。,class test(forms.Form):,.name二forms.CharField(label=请输入姓名)print(test(),请输入姓名:在创建表单时,可使用auto_id=False来简化渲染结果,示例代码如下。,d=test(auto_id=False)print(d)请输入姓名:3.label suffix label_suffix属性用于设置表单字段被

    12、渲染为HTML 元素丽的文本内容的后缀,默认后缀为英文冒号“:,示例代码如下。class test(forms.Form):.addr二forms.CharField(label=联系地址)label_suffix=print(test()Milt*4.initial initial参数用于设置字段的初始值,示例代码如下。class test(forms.Form):.name=forms.CharField(initial=,someone1)print(test(auto_id=False)Name:也可在创建表单对象时提供初始值,示例代码如下。d=test(,name,:,Lining,

    13、/autoJd=False)print(d)Name:5.help_text help_text参数用于设置字段的帮助信息,帮助信息被渲染为 元素,示例代码如下。class test(forms.Form):,name=forms.CharField(help_text=姓名包含字母、数字等字符)print(test(auto_id=False)Name:tdxinput type=text name=name requiredxbrxspan classhelptext11姓名包含字母、数字等字符 6.error_messages errojmessages用于设置自定义错误信息,它将覆盖默

    14、认的错误信息。error_messages的参数值为字典对象,其中的每个键值对对应一条校 验错误信息,示例代码如下。name=forms.CharField(error_messages=frequiredT必须提供name字段数 据T)name.clean()#验证字段取空值,触发异常 Traceback(most recent call last):django.core.exceptions.ValidationError:必须提供name字段数据口7.disableddisabled参数被设置为True时,不允许表单字段渲染成的 HTML元素与用户交互,示例代码如下。class tes

    15、t(forms.Form):.addr=forms.CharField(label=联系地址:disabled=True)print(test()trvlabel foricLaddr11联系地址:v/labelv/thvtdvinput type=,text name=,addr required disabled id=,id_addr7.2.3使用水部件表单字段的widget参数用于指定渲染字段时使用的小部 件(也称组件),示例代码如下。class test(forms.Form):name=forms.CharField(widget=forms.Textarea)print(test

    16、()Name:表7-2常用水部件小部件输入类型渲染结果Textinput文本Numberinput数字EmailinputE-mail地址URLInputURLPasswordinput用于输入密码Hiddenlnput隐藏的表单元素Dateinput日期字符串DateTimelnput日期时间字符串Timeinput时间字符串Textarea长文本.Checkboxinput复选框Select选项列表.NullBooleanSelect类似Select选项为Unknown、Yes和No的selectSelectMultiple类似Select,可多选.RadioSelect单选按钮组包含在l

    17、i元素中的单选按钮组CheckboxSelectMultiple复选框 .Fileinput文件上传SelectDateWidget日期选项列表封费了3个Select来选择年、月、日。可用years和months参数指定 年份和月份选项7.2.4字段校验通常,Django根据字段类型执行默认的校验操作。例如,默认所有表单字段的required属性为True,字 段不接受空值。,表7-3列出了表单字段除了 required之外的其他校验操 作。表7-3常用表单字段类与校骑操作字段类校验操作错误信息关键字BooleanField验证给定值是否为TruerequiredCharField根据maxe

    18、ngth和minength选项设置校验最大、最小长度required max_length min_lengthChoiceField验证给定值是否包含在选项列表中required invalid_choiceDateField验证数据是否为datetime.date、datetime.datetime或日期格式的字符串required invalidTimeField验证数据是否为datetime.time或时间格式的字符串required invalidDecimalField验证数据是否为小数。根据max_value和min_value设置校验最大值、最小值required invali

    19、d、max_value min_value max_digits max_decimal_places、max_whole_digitsFloatField验证数据是否为浮点数。根据max_value和min_value设置校验最大值、最小值required invalid、max_value、min_valueIntegerField验证数据是否为整数。根据max_value和min_value设置校验最大值、最小值required invalid、max_value min_valueEmailField验证数据是否为有效的电子邮件地址required invalidFileField根据

    20、maxength和allow_empty_file设置验证最大长度和是否允许空文件required invalid、missing empty maxjengthFilePathField验证数据是否包含在选项列表中required invalid_choiceImageField验证是否上传了图片文件required invalid、missing empty invalid_imageGenericIPAddressField验证数据是否为有效的IP地址required invalidMultipleChoiceField验证数据是否存在于选项列表中required invalid_cho

    21、ice、invalid_listRegexField验证数据是否与某个正则表达式匹配required invalidUUlDField验证数据是否为有效的UUID字符串required invalid7.2.5使用表单数据通常,request.POST包含了表单采用POST请求方法 提交的数据。,request.POST中的数据没有被转换为Python类型,也 没有经过校验。,表单通过校验时,is_valid()函数返回True。,表单中通过校验的数据被包含在cleaned_data字典中。在使用表单数据时,应尽量使用cleaned_data小的数 据。1.绑定表单设置了数据的表单称为绑定表单

    22、(is_bound属性为True),没有数据的表单称为未绑定表单(is_bound属性为False)。例如:class test(forms.Form):.name=forms.CharField(max_length=5O).age=forms.lntegerField(max_value=5O)d=test()d.is_boundFalse d=test()d.is_boundTrue destCfnamezmike/ageo)#绑定具体数据 d.is_bound#创建空表单#结果为False,说明表单未绑定#绑定空值时,表单也被绑定#结果为True,说明表单已绑定True应注意,在定义表

    23、单时为字段设置的初始值,只用于在表单字段被渲染为HTML元素 时设置元素的初始值。即使有初始值,空表单仍是未绑定的,示例代码如下。class test(forms.Form):.name=forms.CharField(max_length=5O/initial=lnonamel).age=forms.lntegerField(max_value=5/initial=2)d=test()d.is_bound False#创建空表单#结果为False,说明表单未绑定2.使用“干净的”数据调用表单is_valid()方法时会执行数据校验,当所有字段数 据均合法时,方法返回True,否则返回Fals

    24、e。,执行校验时,Django为表单对象创建cleaned_data属性。通过校验的数据是“干净的”,被保存在表单的 cleaned_data 属性中。,cleaned_data属性只能在执行校验之后访问,否则会触发 Attrib ute Error异常。7.2.6手动渲染字段在表单模板中,可以使用form、form.as_table form.as_p和form.as_ul等奏量莪得表单字段而默 认渲染效果,详见72工节。Django允许在表单模板中自定义表单字段的渲染效果。在模板中,用form.字段名格式来访问表单字段。7.2.7追历字段在表单模板中,也可用%。循环来遍历表单字段。表 单字

    25、段的常用属性如下。form.字段名.label:字段的label文本,例如,一“姓名”。form.字段名.label_tag:封装在HTML 元素中的label文 本,包含表单的label_suffixo form.字段名.value:字段值。form.字段名.help_text:字段的帮助文本。form.字段名.errors:字段未通过验证时的错误信息。&f?rrp.字段名.field:表单字段的BoundField实例对象,用于 访问字段属性。例如,form.name.field.max_length。7.2.8表单集,表单集是表单对象的集合,用于处理多个表单。可调用django.form

    26、s模块提供的formset_factory()工厂类方法创建表单集类,示例代码如下。classTestFormset=formset_factory(test;extra=2)#仓4 建表单集类 test参数为自定义的表单类。extra参数指定表单集中包含的表单个数,默认为1 创建了表单集类后,就可用其来创建表单集对象,示例代码如下。,formset=classTestFormset(request.POST)#使用客户端数据初始化表单集,formset=classTestFormset()#创建空白表单集 在视图函数中,可将表单集对象传递给模板,示例代码如下。def useFormset(r

    27、equest):classTestFormset=formset_factory(test,extra=2)#仓|健表单集类,if request.method=POST:,formset=classTestFormset(request.POST)else:formset=classTestFormset()return render(request,temformset.htmr,formset:formset)#将表单集传递给模板7.3模型表单本节主要内容 模型表单基本操作 在视图中使用模型表单 自定义模型表单字段7.3.1模型表单基本操作模型表单指绑定到模型的表单。自定义的模型表单需

    28、扩展django.forms模块提供的ModelForm类。模型表单基本操作包括定义模型、定义模型表单以及 使用模型表单为数据库添加和修改数据。1,定义模型 模型代码如下。#chapter7chapter7models.py from django.db import models class person(models.Model):name=models.CharField(max_length=8)age=models.Small IntegerFieldQ 用于模型表单的模型与普通模型并没有任何区别。2.定义模型表单模型表单代码如下。#chapter7chapteryviews.py

    29、from django.forms import ModelForm from models import personclass personForm(ModelForm):class Meta:model=person fields=name,age 模型表单有两个特点:必须继承 django.forms.ModelForm 类。,提供子类Meta。在Meta的model字段中绑定模型,在fields字段 中设置在表单中使用的模型字段。可以使用特殊值_all_表示使用模型全部字段,示例代码 如下。fields=1all1,也可使用exclude属性来排除不使用的字段,示例代码如下。excl

    30、ude=age13.使用模型表单为数据库添加数据首先使用数据作为参数来创建模型表单,再调用表单的save()方法将数据写入数据库,示例代码如下。from chaptery.models import person from chaptery.views import personForm one=personForm(name:张三age:25)one.save()d=person.objects.all()o d.name,d.age(张三,25)#用初始化数据,创建模型表单对象#保存表单#获取数据库中的第1条记录,#查看数据调用save。方法时,会将数据写入数据库,同时返回包含数据的模型对

    31、象。4.使用模型表单修改数据库记录 在创建模型表单对象时,可使用instance参数指定模型对象,save。方法使用模型表单的数据修改模型对象,从而 修改其关联的数据库记录,示例代码如下。,p=person.objects.get(id=i)#获取模型对象 p.name,p.age#查看数据(张三,25)one=personForm(namel:,H/,agel:3o,instance=p)#创建关联模型对象的模型表单 one.save()#保存表单,p=person.objects.get(id=i)p.name,p.age(,李四,30)#通过模型对象查看修改后的数据7.3.2在视图中使用

    32、模型表单 在视图中,可用request.POST作为参数来创建模型表单对象,再通过模型表单对象将数据添加到数据库或者修改现有记录 视图在使用POST方法请求时,视图通过request.POST获得客户 端提交的数据。将request.POST作为参数初始化表单,执行表单验证操作,可 检查裴据是否有效。在数据有效时,用客户端提交的姓名作为条件执行查询。当教拂序中不存在相同姓名时,执行表单保存操作,将数据写 入数据库。在浏览器中访问视图URL时,请求方法为GET,此时视图返回 空白表单。def usePersonForm(request):if request.method=POST1:#提交表单

    33、时采用POST方法,此时处理数据,mform=personForm(request.POST)#用提交的数据初始化表单 if mform.is_valid():#在表单通过验证时执行数据处理 ps=person.objects.filter(name=request.POST,name1)#用表单数据查询 if ps.count()=o:,mform.save()#不存在相同姓名时,将数据添加到数据库 msg=数据已保存!,else:-msg=,数据库已存在相同姓名的数据,请勿重复提交!,else:mform=personForm()#创建空白表单 msg=请输入数据添加新记录return r

    34、ender(request,temmodelform-html,mform:mform/msgimsg)7.3.3自定义模型表单字段通常情况下,模型表单字段与模型字段保持一致。Django允许在模型表单中覆盖模型字段定义def validate_age(value):if int(value)50:raise ValidationErrorC年龄不能大于50!,/code=max_value,)class personFormDIY(ModelForm):#重定义age字段age=forms.CharField(validators=validate_age/label=,/widget=fo

    35、rms.Numberlnput(),help_text=年龄为20,50以内的整数,)class Meta:model=personfields=name,agelabels=name:姓名help_texts=fname?姓名为中英文字符串widgets=name:forms.Textarea(attrs=cols:30,rows:2),#定义模型表单#指定模型#指定字段#设置字段渲染后的label内容#设置字段帮助文本#设置字段小部件7.4资源资源指应用于表单的CSS和JavaScript文件。当定义表单或小部件时,可以在Media子类中为其定 义资源。在渲染表单时,Django会将资源文

    36、件包含到 HTML 中。本节主要内容小部件资源,表单资源7.4.1小部件资源通过扩展小部件定义表单资源的基本格式如下。class自定义小部件类名称(forms.内置小部件类名称):class Media:设备类型“CSS资源文件URL),js=JavaScript资源文件URL)Media子类的css属性用于设置CSS资源。css属性中的键设置CSS资源中的样式单适用 的设备类型资源文件的URL可以使用相对路径或绝对路径。CSS和JavaScript资源文件属于静态资 源,通常将其放在项目的static文件夹中。关于静态资源配置瘁情请参考本书2.1.4节。可用的类型名称如下。all:默认。适用

    37、于所有设备。aural:语音合成器。braille:盲文反馈装置。handheld:手持设备。projection:投影仪。,print:打印预览模式或打印页面。,screen:计算机屏幕。tty:电传打字机以及类似的使用等宽字符网格的设备。-tv:电视机类型设备。小部件资源通过实例对象的media属性来访问,其被渲染为clink元素。例如,下面的代码扩展了Textinput组件,为其定义了CSS资源。class myTextlnput(forms.Textlnput):.class Media:.css=air:(/static/diyform.css,)text=myTextlnput()

    38、print(text.media)当表单使用了带有资源的小部件时,也可通过表单对象的 media属性获得资源,示例代码如下。class test(forms.Form):name=forms.CharField(widget=myTextlnput)a=test()print(a.media)7.4.2表单资源可以在表单的Media子类中定义资源,其语法规则与小部 件中的Media子类的规则相同。添加表单资源定义,代码如下。class personFormDIY_Media(ModelForm):class Media:css=lalll:(Vstatic/diyforin.css1,)1js

    39、=C/static/focusinputjs1,)7.5 Ajax为ax用于在不刷新整个页面的情况下,在后台将数据提交给服 M器,再使用服务器返回的数据更新局部页面。通常,要使用Ajax需要一个客户端Web页面和一个或多个服务 器端脚本。在Django中,客户端Web页面和服务器端脚本均可用视图来实 凯。本节主要内容实现客户端Web页面处理请求7.5.1实现客户端Web页面 客户端Web页面的具体实现包括定义模板、定义视图 和URL酉己置。-1.定义模板 2.定义视图 3.URL配置7.5.2处理请求,在模板文件temajax.html中,Ajax请求的URL为“/getinfo/,所以需要配置该URL来访问具体处理 请求的视图。7.6实践:实现用户注册本节主要内容


    注意事项

    本文(PythonWeb开发基础教程 第7章 表单.pdf)为本站上传会员【曲****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表




    页脚通栏广告
    关于我们 - 网站声明 - 诚招英才 - 文档分销 - 便捷服务 - 联系我们 - 成长足迹

    Copyright ©2010-2024   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:4008-655-100    投诉/维权电话:4009-655-100   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   



    关注我们 :gzh.png  weibo.png  LOFTER.png