[XXX商城项目-笔记]路由配置

路由配置

在子模块users的views.py中定义视图函数

class RegisterView(View):
    """
    用户注册
    """

    def get(self, request):
        """
        提供数据
        提供用户注册页面

        前后端不分离--后端渲染页面:render
        :param request:请求对象,本次请求的报文信息
        :return:
        """
        return render(request, 'register.html')

    def post(self, request):
        """
        实现用户注册业务逻辑

        # 1. 接收参数
        # 2. 校验参数
            前后端的校验需要分开,避免恶意用户越过前端逻辑发送请求,保证后端的安全,前后端的校验逻辑相同
            2.1 判断参数是否齐全:
                all([]):
                    回去校验列表中的元素是否为空,只要有一个为空,返回false

            2.2 判断用户名是否是5-20个字符
            2.3 判断两次输入的密码是否一致
            2.4 判断手机号是否合法
            2.5 判断用户是否勾选了协议
        # 3. 保存注册数据:是注册业务的核心
        # 4. 响应结果
        :param request:
        :return:
        """

在项目的urls.py中配置总路由

url(r'^', include('users.urls', namespace='users')),

在子模块的urls.py中配置子路由

from django.conf.urls import url, include
from django.contrib import admin

from . import views

urlpatterns = [
    # 用户注册:reverse(users:register) , users:register等效 '/register/'
    url(r'^register/$', view=views.RegisterView.as_view(), name='register')
]
重定向、反向解析,避免使用静态路由

命名空间

例子:
用户注册成功后返回首页

class RegisterView(View):
    """
    用户注册
    """

    def get(self, request):
        return render(request, 'register.html')

    def post(self, request):
    	......
    	# reverse反向解析:reverse(总路由-命名空间:子路由),reverse('contents:index') == '/'
    	return redirect(reverse('contents:index'))

使用静态路由的缺点:
一旦子模块的路由发生改变,需要手动更改所有使用这个路由的地方

如果采用路由的命名空间去动态解析路由,则可以避免这个问题,只要命名空间、子路由命名不变则可以随意更改路由的值

例如:
总路由为:url(r'^', include('contents.urls', namespace='contents')),
命名空间为contents
子路由为url(r'^$', view=views.IndexView.as_view(), name='index')
子路由名称为index
revers('contents':'index')等效于'/'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值