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

建设网站都要什么课题网站建设验收总结报告

建设网站都要什么,课题网站建设验收总结报告,凸一品牌策划公司,房山网站开发1.知识回顾 创建项目#xff1a;新项目、别人项目、新版版、老版本 项目目录#xff08;v1.0版本#xff09; 路由系统 常见路由编写加粗样式 /index/ 函数 /index/str:v1 函数 re_path(ryy/(\d{4})-(\d{2})-(\d{2})/, views.yy), re_path(ryy/(?…1.知识回顾 创建项目新项目、别人项目、新版版、老版本 项目目录v1.0版本 路由系统 常见路由编写加粗样式 /index/ 函数 /index/str:v1 函数 re_path(ryy/(\d{4})-(\d{2})-(\d{2})/, views.yy), re_path(ryy/(?Pv1\d{4})-(?Pv2\d{2})-(?Pv3\d{2})/, views.mm),def yy(request,a1,a2,aa3):passdef mm(request,v1,v2,v3):pass路由的命名 /index/ 函数 namexx1 /index/str:v1 函数 namexx2注意权限的校验。 路由底层的实现 路由定义的本质 urlpatterns [# URLPattern.resolve - RoutePattern.matchURLPattern(RoutePattern(login/, nameNone, is_endpointTrue), views.login, None, None),# resolve - RoutePattern.matchpath(login/, views.login), # resolvere_path(ryy/(\d{4})-(\d{2})-(\d{2})/, views.yy), ]输入网址访问我们的网站 原生请求 - 封装Request对象 /info/v1/ … URLResolver.resolve resolver URLResolver(/) resolver.resolvefor pattern in self.url_patterns:patternURLPattern对象.resolveURLPattern对象.RoutePattern对象.match /info/v1/答疑path / re_path 有啥区别呀 表象 path path(login/, views.login) path(other/int:v1/str:v2/, views.other)re_path re_path(ryy/(\d{4})-(\d{2})-(\d{2})/, views.yy)底层 path partial(_path, PatternRoutePattern) re_path partial(_path, PatternRegexPattern)path path(login/, views.login) path(other/int:v1/str:v2/, views.other)URLPattern(RoutePattern(login/, nameNone, is_endpointTrue), views.login, None, None),re_path re_path(ryy/(\d{4})/, views.yy)URLPattern(RegexPattern(yy/(\d{4})/, nameNone, is_endpointTrue), views.yy, None, None),2.路由系统 2.1 常见路由 … 2.2 路由名称 … 2.3 路由底层实现 … 2.4 路由分发 研究django admin源码时 namespace是什么 无namespace from django.urls import reverseurl reverse(v2) print(url)有namespace from django.urls import reverseurl reverse(namespace名称:v2) print(url)url reverse(namespace名称:namespace名称:v2) print(url)问题什么叫反向生成 path(login/login/login/login/, views.login, namelogin),2.5 路由本质 2.5.1 关于导入和反射 反射以字符串的形式去操作对象中的成员。导入模块 2.5.2 include源码 urlpatterns [path(login/, views.login),path(api/, include(apps.base.urls)),path(api/, (import_module(apps.base.urls), # 模块对象 from app.base import urlsNone, None)) ]urlpatterns [path(login/, views.login),path(api/, include(apps.base.urls)),path(api/, (import_module(apps.base.urls), # 模块对象 from app.base import urlsNone, None)),path(web/, ([path(v1/, www_views.login, namev1),path(v2/, www_views.login, namev2),], None, None)), ]在path执行时传入的参数种类 网址 函数 网址 (模块对象,None,None) urlpatterns [... ]网址 (列表,None,None) 2.5.3 path源码 网址 函数 path(login/, views.login),URLPattern(RoutePattern(login/, nameNone, is_endpointTrue), views.login, None, None )网址 (模块对象,None,None) path(api/, include(apps.base.urls)), path(api/, (import_module(apps.base.urls), # 模块对象 from app.base import urlsNone, None) ),URLResolver(RoutePattern(api/,nameNone,is_endpointFalse),import_module(apps.base.urls), # 模块对象 from app.base import urlsNone,app_nameNone,namespaceNone )网址 (列表,None,None) path(web/, ([path(v1/, www_views.login, namev1),path(v2/, www_views.login, namev2),], None, None) )URLResolver(RoutePattern(api/,nameNone,is_endpointFalse),[path(v1/, www_views.login, namev1),path(v2/, www_views.login, namev2),], None,app_nameNone,namespaceNone )所有URL用类和对象嵌套的形式实现 from django.urls import path, re_path, include from apps.www import viewsfrom django.urls import URLPattern, ResolverMatch from django.urls.resolvers import RoutePattern from importlib import import_module from apps.www import views as www_views from django.urls.resolvers import URLResolverurlpatterns [URLPattern(RoutePattern(login/, nameNone, is_endpointTrue),views.login,None,None),URLResolver(RoutePattern(api/, nameNone, is_endpointFalse),import_module(apps.base.urls), # 模块对象 from app.base import urlsNone,app_nameNone,namespaceNone),URLResolver(RoutePattern(web/, nameNone, is_endpointFalse),[path(v1/, www_views.login, namev1),path(v2/, www_views.login, namev2),],None,app_nameNone,namespaceNone) ]2.5.4 路由匹配源码 1.请求来了 2.路由匹配 3.匹配过程 答疑多个app的时候路由分发到不同的app里如果1个app有100个路由能不能按大类功能进行分组。 path(api/user/login/, views.login, namelogin), path(api/user/logout/, views.login, namelogin), path(api/user/order/, views.login, namelogin), path(api/user/info/, views.login, namelogin), path(api/user/ad/, views.login, namelogin),2.6 关于网址之后的 / APPEND_SLASH True path(login/, views.login, namelogin)http://127.0.0.1:8000/login/ 成功http://127.0.0.1:8000/login 重定向GEThttp://127.0.0.1:8000/login/ 当我们直接访问网址或GET请求访问网址都会成功如果是POST请求有问题。 APPEND_SLASH False path(login/, views.login, namelogin)http://127.0.0.1:8000/login/ 成功http://127.0.0.1:8000/login 失败path(login, views.login, namelogin)http://127.0.0.1:8000/login/ 失败http://127.0.0.1:8000/login 成功严格模式自己定义是什么就以什么方式访问。 2.7 其他 3.视图 3.1 FBV和CBV 问题你习惯用函数视图比较多还是类视图比较多。 非前后端分离FBV前后端分离、小程序APICBV【django rest framekwork框架 3.2 参数 request对象读取请求相关所有的数据。 request.method request.GET ?name123age123age199 特殊的字典{name:[123],age:[123,1999]} reqeust.POST request.FILES request.path_info request.bodyrequest.resover_math request.sessionv1,v2 或 *args,**kwargs用于接收动态路由中的参数值 3.3 业务处理 … 3.4 返回值 from django.http import HttpResponse from django.http import JsonResponse from django.shortcuts import render, redirect# 构建 响应体和响应头 # return HttpResponse(中国北京) # return JsonResponse({status: True, name: 一夜白头}, json_dumps_params{ensure_ascii: False}) # return render(request, demo.txt) # return redirect(https://www.baidu.com) # 301/302问题那什么时候是301什么时候是302 class HttpResponseRedirect(HttpResponseRedirectBase):status_code 302 # 临时重定向class HttpResponsePermanentRedirect(HttpResponseRedirectBase):status_code 301 # 永久重定向pythonav.com 5xclass.com 【运行】4.HTML模板 希望数据 嵌套 HTML标签返回给用户浏览器。 4.1 基本使用 编写 def demo(request):# 业务处理获取到值user_list [一夜白头,星翼]# 1.寻找demo.html去哪里找 优先DIRS再去已注册APP的templates# 2.读取文件内容 参数 模板渲染替换【模板语法】# 3.封装到HttpResponse的请求体中# 4.后续给用户返回return render(request,demo.html,{v1:user_list})寻找 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.staticfiles,apps.app01.apps.App01Config,apps.www.apps.WwwConfig, ]TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [],APP_DIRS: True,OPTIONS: {context_processors: [django.template.context_processors.debug,django.template.context_processors.request,# django.contrib.auth.context_processors.auth,# django.contrib.messages.context_processors.messages,],},}, ]4.2 底层处理方式 namespace {name: wupeiqi, data: [18, 73, 84]} code def hellocute():return name %s ,age %d %(name,data[0],) func compile(code, string, exec) exec(func, namespace) result namespace[hellocute]() print(result)info def _execute():_buffer []_buffer.append(h1)_buffer.append(name)_buffer.append(123)_buffer.append(/h1)return .join(_buffer)func compile(info, string, exec) exec(func, namespace) result namespace[_execute]() print(result)4.3 其他 1.继承 2.导入 3.常见问题和应用 页面的title问题关于模板渲染的时机 4.4 自定义模板函数 app必须注册 创建templatetags的文件夹 任意创建文件内容 from django.template.library import Libraryregister Library()register.simple_tag() def my_func(v1, v2, v3):return 哈哈哈哈 v1 v2 v3register.inclusion_tag(xo.html) def my_xo(num):return {x1: [item for item in num if item 22]}register.filter def my_tt(a1, a2):return 哈哈哈 a1 a2 调用 {% load xxx %} !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body div{{ name }}/div div{{ num }}/div div{% my_func 一夜白头 星翼 name %}/div div{% my_xo num %}/div div{{ alex|my_tt:xxxx }}/div {% if alex|my_tt:xxxx %}h1真/h1 {% else %}h1家/h1 {% endif %} /body /html片段xo.html ul{% for item in x1 %}li{{ item }}/li{% endfor %} /ul
http://www.zqtcl.cn/news/93651/

相关文章:

  • 外贸公司网站空间哈尔滨seo优化专注
  • 建筑行业综合查询平台优化推广联盟
  • 北京管庄网站建设公司开平网站制作
  • 如何做销售直播网站最专业网站建设
  • 太原市住房和城乡建设局的网站首页网络推广服务外包公司
  • 湘icp备 网站建设 农业 湖南稿定设计免费版
  • 公司网站推广方法陕西省住房建设厅官网
  • 网站关键词排名突然没了无锡企业网站建设报价
  • 找做网站的人网站改版 301跳转
  • 网站备案一次就可以了吧营销管理培训课程
  • 怎么做网站背景专做民宿预定的网站
  • wordpress安装谷歌分析代码建网站seo
  • 百度外卖网站建设与维护方法建设 银行网网站
  • 小程序开发定制开发上海优化价格
  • 来宾住房和城乡建设局网站做外贸推广要做哪些平台
  • 无锡建设网站制作wordpress 知乎
  • 动漫网站源码免费怎么怎么做网站
  • 和两个黑人同时做网站中工互联网站建设
  • windows10PHP 网站建设app应用分发平台开发
  • 中唯建设工程有限公司网站做网站页面对PS切图
  • 个人网页制作成品欣赏seo网站沙盒期
  • 亚马逊站外推广网站怎么做制作营销网站模板免费下载
  • 加拿大网站后缀设计师互联网
  • 做物流的网站有哪些内容共同建设网站心得
  • 主题资源网站建设什么网站做污水处理药剂的好
  • 河北建设厅网站修改密码在哪58同城宿迁二手房
  • 淘宝联盟的购物网站怎么做免费网站模板素材
  • 淄博市网站云平台长沙seo 优化选智投未来no1
  • 手机网站导航模板wordpress子域名设置
  • 济南市网站推广公司甘肃网站建设方案优化