实现后台管理权限的配置,可以通过 django 自带的用户模型中的 is_staff 属性,来给对应的用户授予后台操作的权限。...① 后台权限 django的用户可分为两类,一是可认证的用户,也就是在django.contrib.auth.models.User中注册了的;另一种是匿名用户django.contrib.auth.models.AnonymousUser...,每个访问的未登录的用户都是该类的一个实例,而匿名用户是无法认证的,即 is_authenticated 方法永远返回 False,或者is_anonymous返回True,我们可以在代码逻辑中实现对匿名用户进行判断...,然后拒绝其访问(403),或者重定向到登录页面等。...只允许 staff 身份的用户访问某个视图,django同样提供了一个便捷的装饰器来实现这个功能: from django.contrib.admin.views.decorators import staff_member_required
例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求): 301–对象已永久移走,即永久重定向。 302–对象已临时移动。 304–未修改。 307–临时重定向。...这些具体的错误代码在浏览器中显示,但不在IIS日志中显示) 401.1–登录失败 401.2–服务器配置导致登录失败 401.3–由于ACL对资源的限制而未获得授权 401.4–筛选器授权失败...401.5–ISAPI/CGI应用程序授权失败 401.7–访问被Web服务器上的URL授权策略拒绝(这个错误代码为IIS6.0所专用) 403–禁止访问(IIS定义了许多不同的403错误,它们指明更为具体的错误原因...) 403.1–执行访问被禁止 403.2–读访问被禁止 403.3–写访问被禁止 403.4–要求SSL 403.5–要求SSL128 403.6–IP地址被拒绝 403.7–要求客户端证书...这个错误代码为IIS6.0所专用 403.20–Passport登录失败。
而大部分管理后台框架仅提供了 404 页面的支持,但却忽略了对 403 页面的处理,有的框架虽然也有对 403 页面的处理,但处理效果却不尽人意。 那怎么样的 403 页面才是即好用,又优雅呢?...那就是用户虽然知道了当前页面无访问权限,但却看不到页面的真实地址,因为已经被重定向到 403 页面上了,用户体验稍微欠缺了一点,就像下图这样: 我是怎么做的 先稍微思考一下方案,首先刚才第一种方案剔除无访问权限的路由肯定不行...,无访问权限的路由必须得注册,这样才能和 404 页面做出区分;其次第二种方案在导航守卫里做重定向也不行,不能重定向,要保证路由地址还是原来的地址,但页面要展示 403 页面的内容。...「让权限不足的用户禁止访问页面」的需求。...当然这得益于它所选的方案,因为路由不需要随着用户权限或账号的变化而变化,所以也就不需要通过刷新页面或者重新登录的方式去更新路由。 或许我还能再优化优化,让这个方案再优雅一点?
默认情况下,当我们在项目中执行数据库操作migrate时,添加在INSTALLED_APPS列表中的权限认证模块django.contrib.auth需要的数据都会被执行到数据库中,并添加对应的默认权限操作...from django.contrib.auth import logout def logout_view(request): logout(request) # 重定向到下一个页面...登录失败操作 在实际项目操作过程中,需要用户身份认证才能访问的函数的正确作法推荐两种,一种是认证失败时跳转到登录页面,但是要附带当前路径信息,方便用户登录成功以后直接跳转到正在访问的页面,另一种直接跳转错误页面即可...认证失败跳转登录页面 from django.conf import settings from django.shortcuts import redirect def my_view(request...的方式进行认证操作,如果用户没有对应的访问权限操作的话,会自动抛出403禁止访问的异常信息,主要是PermissionDenied权限未定义的错误导致的禁止访问
规范是原请求无论是get还是post,都可以进行重定向到get上。...307 临时重定向,http1.1的产物,基本上和303相同,区别就是原请求是post请求,不能进行重定向到get上 308 永久重定向,http1.1的产物,基本上和301相同,区别就是不允许将原请求是...post方法重定向到get请求上。...403 表示请求通过,但是授权失败,也就是服务器验证了用户身份,只是用户没有权利访问页面,或者进行页面操作,通常是指用户登录成功,但是无权进行操作(可能是读/写/改)。...如果服务器知道该资源是永久丢失,那么应该返回410而不是 404。 405 表明服务器禁止了使用当前 HTTP 方法的请求。
当请求一个页面时,Django 把请求的 metadata 数据包装成一个 HttpRequest 对象,然后 Django 加载合适的 view 方法,把这个 HttpRequest 对象作为第一个参数传给...COOKIES,字典形式 4. user: 一个django.contrib.auth.models.User 对象表示当前登录用户,若当前用户尚未登录,user会设为django.contrib.auth.models.AnonymousUser...HttpResponse子类 主要是对一些404、500等错误页面的处理。 Table H-5....HttpResponse Subclasses Class Description HttpResponseRedirect 构造函数接受单个参数:重定向到的URL。...HttpResponseForbidden 返回403 status code. HttpResponseNotAllowed 返回405 status code.
注意,如果你提供一个值给redirect_field_name,你非常可能同时需要自定义你的登录模板,因为存储重定向路径的模板上下文变量将使用redirect_field_name值作为它的键,而不是默认的...例如,视图检查用户的邮件属于特定的地址(例如@example.com),若不是,则重定向到登录页面。...把它设置为 None 来把它从 URL 中移除,当你想把通不过检查的用户重定向到没有next page 的非登录页面时。...如果提供了 raise_exception 参数,装饰器抛出PermissionDenied异常,使用 the 403 (HTTP Forbidden) 视图而不是重定向到登录页面。...如果你在升级一个现存的站点,并且希望开启这一中间件,而不希望你的所有用户之后重新登录,你可以首先升级到DJango1.7并且运行它一段时间,以便所有会话在用户登录时自然被创建,它们包含上面描述的会话哈希
login_required()的代码检查用户是否已登录,仅当用户已登录时,Django才运行topics() 的代码。如果用户未登录,就重定向到登录页面。.../login/' 现在,如果未登录的用户请求装饰器@login_required的保护页面,Django将重定向到 settings.py中的LOGIN_URL指定的URL。...然后,单击链接Topics,这将重定向到登录页面。接 下来,使用你的账户登录,并再次单击主页中的Topics链接,你将看到topics页面。 2....,将被重定向到登录页面。...另外,你还不能单击 到new_topic等页面的链接。但如果你输入URL http://localhost:8000/new_topic/,将重定向到登录 页面。
· 302 - Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信是“Moved Temporatily”。...· 403 - Forbidden(已禁止) 服务器拒绝请求。通常由于服务器上文件或目录的权限设置导致。...禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: · 403.1 - 执行访问被禁止。 · 403.2 - 读访问被禁止。 · 403.3 - 写访问被禁止。...· 410 - Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。...这些错误可能是服务器本身的错误,而不是请求出错。 · 500 - Internal Server Error(服务器内部错误) 服务器遇到错误,无法完成请求。
网站测试中常遇到类似 404/500 之类的错误页面提示码,以下汇总一下相对应的错误含义,便于理解问题之所在: 5xx-服务器错误:服务器由于遇到错误而不能完成该请求。...这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: 401.1-登录失败。 401.2-服务器配置导致登录失败。 401.3-由于 ACL 对资源的限制而未获得授权。...403-禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: 403.1-执行访问被禁止。 403.2-读访问被禁止。 403.3-写访问被禁止。...405-用来访问本页面的 HTTP 谓词不被允许(方法不被允许) 406-客户端浏览器不接受所请求页面的 MIME 类型。 407-要求进行代理身份验证。 412-前提条件失败。...3xx-重定向,客户端浏览器必须采取更多操作来实现请求。 浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。 301-对象已永久移走,即永久重定向。 302-对象已临时移动。
 但是,如果我输入东西,再提交,页面就会报错403  目前解决方案,先在settings.py文件中,把csrf中间件注释掉。...的对象 举例:登录成功跳转到其他页面 from django.shortcuts import render, HttpResponse, redirect import pymysql from app01...is_anonymous() 返回True 而不是False。 is_authenticated() 返回False 而不是True。...A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。...这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的 网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等
3xx重定向 这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。...403 - 禁止访问 403.1 - 执行访问被禁止。 403.2 - 读访问被禁止。 403.3 - 写访问被禁止。 403.4 - 要求 SSL。 403.5 - 要求 SSL 128。...405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许) 406 - 客户端浏览器不接受所请求页面的 MIME 类型。 407 - 要求进行代理身份验证。 408 - 请求超时。...这不是一个官方的状态码,但是仍被广泛使用。 510 - 没有扩展,获取资源所需要的策略并没有被满足。...530 未登录。 532 存储文件需要帐户。 550 未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。 551 请求的操作异常终止:未知的页面类型。
如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。 · 205 - Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。...· 302 - Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。...这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: · 401.1 - 登录失败。 · 401.2 - 服务器配置导致登录失败。...禁止访问:IIS 定义了许多不同的 403 错误,它们指 明更为具体的错误原因: · 403.1 - 执行访问被禁止。 · 403.2 - 读访问被禁止。 · 403.3 - 写访问被禁止。...(HTTP 1.1新) · 410 - Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。
3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。 • 302 - 对象已移动。 • 304 - 未修改。...• 307 - 临时重定向。 4xx - 客户端错误 发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。 • 400 - 错误的请求。...• 403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: • 403.1 - 执行访问被禁止。 • 403.2 - 读访问被禁止。...客户端使用文档的缓存副本,而不从服务器下载文档。 • 401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。 • 401.3 - 由于 ACL 对资源的限制而未获得授权。...如果使用匿名帐户登录,IIS 的配置可能拒绝匿名访问。 • 550 - 命令未被执行,因为指定的文件不可用。例如,要 GET 的文件并不存在,或试图将文件 PUT 到您没有写入权限的目录。
Django REST Framework可以在Django的基础上迅速实现API,并且自身还带有WEB的测试页面,可以方便的测试自己的API。 ...前后端不分离 在前后端不分离的引用模式中,前端页面看到的效果都是由后端控制的,由后端页面渲染或者重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高,这种模式比较适合纯网页应用,...# 另外,我们还包括支持浏览器浏览API的登录URL。...呈现给我们是API,以调接口形式去操作数据库,而admin后台管理是页面的形式操作和展示数据。...细心的人可以发现,为啥status是红色的叉,是因为序列化的时候没有将状态字段显示,现在我将它放出来: 再运行程序,添加用户后查看: 进入后端管理页面查看: 是不是就开启了,如果不放心的同学,
HTTP 401.4 - 未授权:授权被筛选器拒绝 HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败 HTTP 403 - 禁止访问 HTTP 403 - 对 Internet...3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。 • 302 - 对象已移动。 ...• 307 - 临时重定向。4xx - 客户端错误 发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。 • 400 - 错误的请求。 ...• 403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: • 403.1 - 执行访问被禁止。 • 403.2 - 读访问被禁止。 ...客户端使用文档的缓存副本,而不从服务器下载文档。 • 401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。 • 401.3 - 由于 ACL 对资源的限制而未获得授权。
3xx - 重定向 客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。...302 - Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。...这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: 401.1 - 登录失败。 401.2 - 服务器配置导致登录失败。 401.3 - 由于 ACL 对资源的限制而未获得授权。...禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: 403.1 - 执行访问被禁止。 403.2 - 读访问被禁止。 403.3 - 写访问被禁止。...(HTTP 1.1新) 410 - Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。
通过 htaccess 文件,可以帮我们实现:网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。.../index.php [L] #把所有的请求指向 /index.php #结束 IfModule # END WordPress #WordPress 的 htaccess 到这里结束 使用范例 设置错误页面.../403.html ErrorDocument 404 /error_pages/404.html ErrorDocument 500 /error_pages/500.html 设置重定向 #从 old_dir...目录重定向到 new_dir 目录 Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html #把通过二级目录访问的请求 301...重定向到二级域名 RedirectMatch 301 /dir/(.*) http://dir.yourdomain.com/$1 禁止指定 IP 访问 #禁止 IP 为 255.0.0.0 和 123.45.6
通过 htaccess 文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。...-f #如果请求的不是一个文件,继续处理 RewriteCond %{REQUEST_FILENAME} !-d #如果请求的不是一个目录,继续处理 RewriteRule ..../index.php [L] #把所有的请求指向 /index.php #结束 IfModule # END WordPress #WordPress 的 htaccess 到这里结束 使用范例 设置错误页面.../403.html ErrorDocument 404 /error_pages/404.html ErrorDocument 500 /error_pages/500.html 设置重定向 #从 old_dir...目录重定向到 new_dir 目录 Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html #把通过二级目录访问的请求301重定向到二级域名
领取专属 10元无门槛券
手把手带您无忧上云