路由模式

Django的路由系统

你。 提交于 2019-11-29 14:03:56
Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的 映射表。 你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 URLconf配置 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 注意: Django 2.0版本中的路由系统已经替换成下面的写法( 官方文档 ): from django.urls import path urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail), ] 参数说明: 正则表达式:一个正则表达式字符串

Django(四)路由系统

让人想犯罪 __ 提交于 2019-11-29 14:03:35
Django的路由系统 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。 你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 URLconf配置 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 参数说明   正则表达式:一个正则表达式字符串   views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串   参数:可选的要传递给视图函数的默认参数(字典形式)   别名:一个可选的name参数 正则表达式详解 基本配置 from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), url(r'^articles/([0-9]{4})/$', views.year_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive), url(r'^articles/([0-9]

Vue打包后刷新页面显示404或者not get ***错误

扶醉桌前 提交于 2019-11-29 11:57:26
引 首先要知道的一点就是,Vue 打包形成的是单页面应用,很明显,就只有一个 index.html 和好几个 js 文件 然后再开发的过程中, hsah 模式下的路由会多个 # ,所以会显得很难看,大家都会使用 history 模式,这样就导致了这个问题。 hash 模式下的路由变化不会发生对后端的请求,但是 history 模式下,会出现路由变化导致请求的发生,而单页面应用只有index文件,默认一般都是在 / 根目录下,所以当在其他页面的时候,发生请求,会出现后端没有配置而返回的 404. 方法 网上有很多用 nginx 的方法,但是在本地实验的时候很麻烦,所以在使用nodejs作为后端的时候可以使用这个库 connect-history-api-fallback //俩行代码即可 var history = require ( 'connect-history-api-fallback' ) app . use ( '/' , history ( ) ) ; 问题解决!!!! 来源: https://blog.csdn.net/qq_32867271/article/details/100804824

单页面应用的History路由模式express后端中间件配合

此生再无相见时 提交于 2019-11-29 00:50:49
这篇文章主要分享一下通过 HTML5 的 history API 的时候,使用 NodeJS 后端应该如何配置,来避免产生404的问题,这里是使用的express的框架,主要是通过 connect-history-api-fallback 这个中间件来实现的! 前言 这里使用vue-router来实现的单页应用为例,访问 http://cnode.lsqy.tech ,进入首页,点击下面的tab栏,一切都是很正常的,但当这时候你 ctrl+command+R 或 点击浏览器的刷新按钮 或 在地址栏上再敲一下回车,总之就是刷新,发现就会出现404了,比如这样的错误 Cannot GET /message/ ,因为默认浏览器会认为你是在请求服务端的路由,服务端那边没有对应的处理,所以自然就会出错了,下面来引入 connect-history-api-fallback 这个中间件,来无痛使用优雅的History路由模式。 引入connect-history-api-fallback 首先看它的介绍 Middleware to proxy requests through a specified index page, useful for **Single Page Applications** that utilise the HTML5 History API.

Vue-Router中History模式

放肆的年华 提交于 2019-11-27 22:09:03
目录 history路由 官方示例 Express中间件 客户端兜底404 示例代码托管在: http://www.github.com/dashnowords/blogs 博客园地址: 《大史住在大前端》原创博文目录 华为云社区地址: 【你要的前端打怪升级指南】 history路由 history 模式是指使用HTML5的 historyAPI 实现客户端路由的模式, 它的典型表现就是去除了 hash 模式中url路径中的 # 。对于前端路由基本原理还不了解的读者可以看这篇博文 【javascript基础修炼(6)——前端路由的基本原理】 。在使用 Vue-Router 时开启 history 模式非常容易,只需要在实例化路由时传入 mode:'history' 配置项即可,但缺少服务端支持时,基于 historyAPI 的路由无法从url地址栏直接访问指定页面,这个很容易理解,因为url地址栏里输入后回车相当于发送了一次 GET 请求,那么不带 # 的路由路径就和普通的 API 接口是一样的,既然服务端并没有定义这样的接口,那直接访问时出现404页面就很正常了。 官方示例 官方提供了很多处理这种场景的方式,以 node.js 版本的处理方案为例: const http = require('http') const fs = require('fs') const

Django路由层

浪尽此生 提交于 2019-11-27 17:48:24
Django的路由系统 Django 1.11版本URLConf官方文档 URL配置(URLconf)就像Django所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。 路由增加首页的方式 url(r"^$",views.home) 路由增加尾页的方式(当所有的路径都匹配不上时,给 我返回404提示信息) url(r"",views.error)#放在urls的urlpatterns最后 URLconf配置 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 注意: Django 2.0版本中的路由系统已经替换成下面的写法: from django.urls import path urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path('articles/<int:year>/<int:month>/<slug:slug>/',

【Django】路由系统 -- 2019-08-17 07:16:49

﹥>﹥吖頭↗ 提交于 2019-11-27 14:42:53
目录 URLconf配置 正则表达式详解 分组命名匹配 命名URL 与 URL反向解析 原文: http://blog.gqylpy.com/gqy/263 "@ *** 补充 获取项目内的所有URL from django.urls.resolvers import RegexURLPattern from 项目名称 import urls # 与setting.py文件同级的urls文件 def get_all_urls(urlpatterns, prev, is_first=False, result=[]): """获取项目所有的URL""" if is_first: result.clear() for item in urlpatterns: v = item._regex.strip('^$') if isinstance(item, RegexURLPattern): result.append(prev + v) else: self.get_all_urls(item.url_patterns, prev + v) return result # 调用 url_list = self.get_all_urls(urls.urlpatterns, prev='/') Django 1.1版本 URLConf官方文档 URL配置(URLconf

【Django】路由系统 -- 2019-08-17 07:09:37

梦想与她 提交于 2019-11-27 14:42:35
目录 URLconf配置 正则表达式详解 分组命名匹配 命名URL 与 URL反向解析 原文: http://blog.gqylpy.com/gqy/263 "@ *** 补充 获取项目内的所有URL from django.urls.resolvers import RegexURLPattern from 项目名称 import urls # 与setting.py文件同级的urls文件 def get_all_urls(urlpatterns, prev, is_first=False, result=[]): """获取项目所有的URL""" if is_first: result.clear() for item in urlpatterns: v = item._regex.strip('^$') if isinstance(item, RegexURLPattern): result.append(prev + v) else: self.get_all_urls(item.url_patterns, prev + v) return result # 调用 url_list = self.get_all_urls(urls.urlpatterns, prev='/') Django 1.1版本 URLConf官方文档 URL配置(URLconf

vue router

别说谁变了你拦得住时间么 提交于 2019-11-27 14:04:41
二、vue-router是什么 这里的路由并不是指我们平时所说的硬件路由器, 这里的路由就是SPA(单页应用)的路径管理器 。再通俗的说,vue-router就是WebApp的链接路径管理系统。 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。 路由模块的本质 就是建立起url和页面之间的映射关系 。 至于我们为啥不能用a标签,这是因为用Vue做的都是单页应用( 当你的项目准备打包时,运行 npm run build 时,就会生成dist文件夹,这里面只有静态资源和一个index.html页面 ),所以你写的<a></a>标签是不起作用的,你必须使用vue-router来进行管理。 三、vue-router实现原理 SPA(single page application):单一页面应用程序,只有一个完整的页面;它在加载页面时,不会加载整个页面,而是只更新某个指定的容器中内容。 单页面应用(SPA)的核心之一是: 更新视图而不重新请求页面 ;vue-router在实现单页面前端路由时,提供了两种方式

【Django】路由系统 -- 2019-08-11 19:01:41

不羁岁月 提交于 2019-11-27 00:08:12
目录 URLconf配置 正则表达式详解 分组命名匹配 命名URL 与 URL反向解析 原文: http://106.13.73.98/__/37/ @ *** 补充 获取项目内的所有URL from django.urls.resolvers import RegexURLPattern from 项目名称 import urls # 与setting.py文件同级的urls文件 def get_all_urls(urlpatterns, prev, is_first=False, result=[]): """获取项目所有的URL""" if is_first: result.clear() for item in urlpatterns: v = item._regex.strip('^$') if isinstance(item, RegexURLPattern): result.append(prev + v) else: self.get_all_urls(item.url_patterns, prev + v) return result # 调用 url_list = self.get_all_urls(urls.urlpatterns, prev='/') Django 1.1版本 URLConf官方文档 URL配置(URLconf