版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Django概述填空题MTV模板视图视图virtualenvpiplistdjango-adminstartprojectmysite判断题×。虚拟环境管理工具只能管理通过管理工具创建的虚拟环境。√×。命令错误,用于启动服务器的命令为pythonmanage.pyrunserver。√×。配置项DATABASES必须包含一个默认数据库“default”。选择题BC。A、B两项都在命令行中操作,只能指定临时配置文件。C。应用创建后需注册到配置文件的INSTALLED_APPS中,否则项目无法识别。D编程题Django使用MTV架构,该架构分为模型(Model)、模板(Template)、视图(View)三部分,其中模型是数据操作层,定义数据模型,封装对数据库层的访问;模板(Template)为表现层,负责将页面呈现给用户;视图(View)为业务逻辑层,调用模型和模板,实现业务逻辑。Django应用是一个专门做某件事的网络应用程序,比如博客、论坛,或者简单的投票程序;Django项目是一个网站的配置和应用的集合。总体上,Django遵循各部分松耦合、代码尽可能精简、保证Web开发效率、避免重复、明确优于隐式这些理念。路由系统填空题尖括号路由转换器参数名to_url()to_path()regexinclude()reverse()判断题√×√√×选择题BABBC简答题Django接收到HTTP请求处理流程为:首先加载项目中的settings.py文件并从该文件中读取变量ROOT_URLCONF,然后根据该变量查找对应的根URLconf模块,并读取该模块中的URL模式,之后将输入的URL与URL模式进行逐一匹配,最后若匹配成功则调用对应的视图,否则响应错误视图。re_path()函数与path()函数都定义在urls模块中功能相同,但若在URL中包含正则表达式时使用此函数。因为Djnago中允许不同应用中使用相同的URL命名,为了区分不同URL命名,应使用应用中的应用命名空间进行区分;Django中每一个URL模式都是一个实例,一个应用可以创建多个实例,多个实例也可以映射到同一个应用,但此时在视图中使用命名空间进行反向解析会出现URL匹配混淆,此时需要使用命名空间进行区分。模型填空题定义数据字段和行为makemigrationsmigrate迁移文件OneToOneFieldForeignKeyManyToManyFielddb_table判断题√××××选择题DCADABC简答题F对象用于不同字段之间的比较;Q对象用于构造复杂的查询条件。自定义管理器通常用两种情况,一是添加额外的管理器方法;二是修改Manager的原始查询集。Django中可以使用raw()方法和execute()执行SQL。raw()方法用于执行原始查询语句,并返回一个RawQuerySet对象;execute()方法多用于执行自定义SQL语句。模板填空题模板模板引擎TEMPLATESDIRSget_template()select_template判断题√×。select_template()接收一个模板名称列表,按顺序尝试加载列表中的模板,返回找到的第一个模板的Template对象;若未找到模板则抛出异常。√√×。参数request设有默认值None,非可选参数。×。若点字符后的元素是一个方法,这个方法在调用时不带括号,所以应为“{{people.set_name}}”。选择题B。Django按顺序查找模板文件,首先查找Django内置引擎配置的两个,若未找到,查找Jinja2引擎配置的目录。所以查找的第三项为/home/html/jinja2/story_detail.html。B。get_template()和select_template()返回模块对象,只有render_to_string()满足要求。D。模板与Python的变量都有字母、数字、下划线组成,但模板变量不能以下划线开头。C。当遇到点字符时,模板引擎会按字典、属性或方法、数字索引的顺序对其进行解释。A。Jinja2中没有cycle标签,它通过循环对象的cycle()方法实现cycle标签的功能,所以在Jinja2模板中,选项A的内容应写为{{loop.cycle('odd','even')}}。简答题Django项目通过模板引擎解释模板文件,一个Django项目中可以配置一个或多个模板引擎。Django有内置的模板引擎,也支持广泛使用的Python模板引擎Jinja2。若要在Django项目中使用模板,需先在settings.py文件的TEMPLATES选项中配置模板引擎。Django模板中对方法的调用是隐式的,但Jinja2模板中必须使用括号明确表明调用的是一个方法(不能省略括号);Django模板中使用冒号“:”间隔过滤器和过滤器的参数,Jinja2使用括号包含过滤器参数;Jinja2中的循环变量为loop,Django引擎的循环变量为forloop;Django模板通过cycle标签实现循环计数,Jinja2中没有cycle标签,它通过循环对象的cycle()方法隐式实现cycle标签的功能。Django模板中对方法的调用是隐式的,但Jinja2模板中必须使用括号明确表明调用的是一个方法。视图填空题处理请求request上下文字典requestrequest.GET.get(‘carts’)queryset判断题×。视图分为函数视图和类视图。√。此时服务器收到的POST请求为空,应使用“ifrequest.method==“POST””判断是否使用POST方法。×。HttpRequest对象的GET与POST属性都是QueryDict对象,它是一个类似字典的对象,但不是字典。√选择题AB。与字典不同,若要删除的字段不存在,del不会抛出KeyError异常。DDC简答题render()函数用于简化“载入模板——填充上下文——生成响应消息——返回响应对象”这一流程,它结合给定的模板和上下文字典,返回一个渲染后的HttpResponse对象。render()、redirect()、get_object_or_404()、get_list_or_404()。类视图允许在views.py的一个类中定义不同的类方法去响应同一功能以不同请求方式发送的请求,可避免单个视图中使用条件分支代码处理相同场景时的臃肿。Django提供了两种方式来配置类属性,一种是Python类中定义属性的标准方法——直接重写父类的属性;另一种是在URL中将类属性配置为as_view()方法的关键字参数。后台管理系统——Admin填空题模型添加中间件修改配置项/admin/@admin.register()admin.site.register()控制页面展示字段判断题×××√对选择题BABAC简答题Django提供了一个可插拔的后台管理系统——Admin,该系统可以从模型中读取元数据,并提供以模型为中心的界面,通过使用该内置系统可以方便快捷的对数据进行管理。自定义管理员动作分为两步:首先定义管理员动作函数,该函数需要有返回值;然后在注册的模型类中将定义的函数名添加到actions选项中。表单填空题formFormlabelrequiredEmailFieldis_bound判断题×。表单类的字段映射为HTML表单域中的控件。×。默认表单中的每个字段都是必需字段,若要将字段指定为非必需字段,required应设置为False。×。当disabled属性的值为True时,字段使用默认值且不可编辑,即使用户篡改提交给服务器的值以修改该字段,值也会被忽略。√√×。表单实例中的数据无法被更改,若想更改已绑定表单实例中的数据,或将未绑定的表单实例与某些数据绑定,应创建一个新的表单实例。选择题AD。表单验证完毕后,程序仍能从request.POST中访问到未验证的数据。C。渲染选项{{form.as_table}}和{{form.as_ul}}不会生成外层的<table>标签和<ul>标签,使用时应手动提供这两种标签。A。创建表单集还需要已经定义好的表单。简答题模型实例若为空,模板对它进行的处理没有意义,但表单实例为空时,模板需要将其渲染为空表单,以便用户填充数据。文件读写位置属性用于记录文件当前读写的位置。选择字段的方式有两种:一可以利用内部类Meta的fields属性选择模型类的部分字段,二可以利用内部类Meta的exclude属性排除表单中不需要的模型类字段。验证模型表单主要涉及两个步骤:验证表单。模型表单验证在调用is_valid()或errors属性时隐式触发,在调用full_clean()时显式触发。验证模型实例(Model.full_clean()),full_clean()在表单的clean()方法之后被调用。身份验证系统填空题usernamepasswordcreate_superuser()验证用户Permissionsgroup.permission.add(permission,…)判断题×√√√√选择题ABCAC简答题Django中允许开人员在模型的Meta子类中通过permissions属性自定义权限,也可以通过ContentType类创建权限。在使用ContentType类创建权限时,首先通过get_for_model()方法获取要设置权限的模型,然后通过Permissions模型中的create()方法设置权限。Django限制访问的方式有request.user.is_authenticated属性、装饰器@login_required和LoginRequiredMixin类,其中request.user.is_authenticated属性为限制用户最原始的方式,在函数视图和类视图中均可使用;装饰器@login_required主要用于函数视图中;LoginRequiredMixin主要用于类视图中。自定义用户模型步骤:首先定义用户模型类,如User类,然后令User类继承AbstractUser类;最后在settings.py文件中设置AUTH_USER_MODEL选项,另其指明自定义用户模型,例如User模型位于users/models.py中,此时AUTH_USER_MODEL为“users.User”。前期准备简答题需求驱动开发,它是开发的基石,也是开发人员的工作目标,在着手开发项目之前,明确项目的业务流程和主要的业务需求非常必要。将项目划分为多个模块降低了项目功能之间的耦合度,既方便对项目进行管理,也利于协同开发。项目环境分为开发环境和生产环境,开发环境是编写和调试项目代码的环境,生产环境是部署项目上线运行时使用的环境。不同的环境使用的配置信息不同,为了避免开发环境和生产环境的配置相互干扰,可将它们的配置信息分别存储在两个配置文件中。电商项目——用户管理与验证简答题小鱼商城的用户注册由前端与后端组成。前端在页面中显示用户需填写的注册信息,对用户填写的注册信息进行初次校验;在后端中首先需要对用户填写的注册信息进行校验,如果不满足校验规则则将错误信息响应到前端页面,若注册信息均满足校验规则则将用户填写的注册添加到数据库中。小鱼商城的用户模型类User中包含了username与mobile字段,其中username字段为父类AbstractUser中的字段,该字段在定义时指定了唯一性unique为True;mobile字段为模型类User中的字段,该字段在定义时同样指定了唯一性unique为True,因此在用户注册时需要对这两个字段的重复性进行检测。多账号登录指用户可使用不同认证信息登录到网站。小鱼商城中,允许用户使用用户名和手机号码登录,Django框架中默认使用用户名登录,而手机号登录则是对Django框架登录进行扩展,需要对auth模块中backend.authenticate()方法进行重写,使其同时能根据用户名和手机号获取用户对象即可。在用户表中若通过邮箱验证email_active字段值为1,否则为0。小鱼商城在进行邮箱验证时,会向用户填写的邮箱中发送包含激活链接的邮件,该激活链接中包含对用户身份的验证,如果验证通过则修改用户表email_active字段的值,否则不进行修改即邮箱验证失败。电商项目——商品与广告简答题SKU表示库存量单位(StockKeepingUnit),它是库存进出计量的单位,可以是以件、盒等为单位、物理上不可分割的最小存储单元;SPU表示标准产品单位(StandardProductUnit),它是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。SKU和SPU为一对多关系。小鱼商城的面包屑导航中的类别分为一级、二级和三级类别,其中一级类别包含二级类别,二级类别包含三级类别。三级类别信息存储在同一张数据表中,这张表是一个自关联表,表中定义了一个parent字段,用于记录当前类别所属的上级类别,一级类别的parent字段为None,二级类别的parent记录一级类别id,三级类别的parent记录二级类别id。那么当一个类别的parent为None时,它是一级类别;parent不为None,上级类别的parent为None时,它是二级类别;parent和上级类别的parent都不为None时,它是三级类别。MySQL是磁盘型的数据库,它的存取效率很差,不适合存储数据量较小、变动频繁的数据;相反Redis存取速度快、可设置过期时间,更适合存储频繁变动的数据。电商项目——购物车用户未登录会将购物车数据保存在Cookie中,包括sku_id、商品数量count和勾选状态selected,这些信息会以JSON格式展示,为保护用户购物车数据的隐私性,通过pickle模块与base64模块对购物车数据序列化。因为购物车数据量小、结构简单、更新频繁,所以选择内存型数据库Redis。用户登录后会将购物车数据保存在Redis中。使用Redis保存购物车数据时,会将user_id、sku_id和count数据以hash类型保存;勾选状态selected数据以set类型进行保存。合并购物车是将Cookie中的购物车数据合并到Redis购物车数据。在用户登录时,会检测Cookie中是否包含购物车数据,若包含购物车数据会将这些数据以增量的形式合并到Redis数据库中。电商项目——订单与结算填空题decimal、int、decimal订单提交这一功能涉及到数据库中多张表(OrderInfo、OrderGoods、SKU、SPU)的修改,而这些数据的修改应当同步修改,若修改不能一起成功,便应当一起失败,因此放在一个事务中。MySQL支持悲观锁和乐观锁两种锁,其中悲观锁会在查询某条记录时便给数据加锁,防止别人修改数据;乐观锁(虽然叫“锁”,但本质只是条件判断)在更新时判断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国电信股份限公司保山分公司(保山电信)招聘16人(云南)高频重点提升(共500题)附带答案详解
- 2025中国电信国际限公司校园招聘高频重点提升(共500题)附带答案详解
- 2025中国储备粮管理集团限公司招聘700人高频重点提升(共500题)附带答案详解
- 2025下半年贵州省六盘水市事业单位及国企业招聘应征入伍大学毕业生164人高频重点提升(共500题)附带答案详解
- 2025下半年湖南岳阳市城市建设投资集团限公司招聘15人高频重点提升(共500题)附带答案详解
- 2025下半年浙江温州市瓯海区事业单位招聘工作人员23人高频重点提升(共500题)附带答案详解
- 2025下半年四川绵阳平武县招聘事业单位专业技术人员6人历年高频重点提升(共500题)附带答案详解
- 2025下半年四川省泸州泸县事业单位招聘95人历年高频重点提升(共500题)附带答案详解
- 2025下半年四川巴中南江县事业单位考试招聘72人高频重点提升(共500题)附带答案详解
- 2025上海烟草集团招聘高频重点提升(共500题)附带答案详解
- 2024年高考物理模拟卷(山东卷专用)(考试版)
- 中建施工电梯安拆专项施工方案
- 湖北省武汉市青山区2022-2023学年五年级上学期数学期末试卷(含答案)
- 《一年级乐考方案》
- 客运公司企业年度安全培训计划
- 安全行车知识培训
- 浙江省杭州市2023-2024学年高一上学期期末考试物理试题(含答案)5
- 《入侵检测与防御原理及实践(微课版)》全套教学课件
- 2024年物业管理师(中级四级)考试题库大全-下(判断、简答题)
- 宗教签约合同模板
- 员工三级安全培训试题带答案(达标题)
评论
0/150
提交评论