Python web模版Django-15 设置urls.py中的urlpatterns,用path方法时不能用正则表达式

"""
from django.contrib import admin
from django.urls import path
from sign import views
from django.conf.urls import url

# urlpatterns = [
#     path(r'', views.index),
#     path('index/', views.index),
#     path(r'^admin/', admin.site.urls),
#     path('login_action/', views.login_action),
#     path('event_manage/', views.event_manage),
#     path(r'^account/', views.index),
# ]

urlpatterns = [
    url(r'^$', views.index),
    url(r'^index/$', views.index),
    url(r'^admin/', admin.site.urls),
    url(r'^login_action/', views.login_action),
    url(r'^event_manage/', views.event_manage),
    url(r'^accounts/login/$', views.index),
]

发现一个问题,如果在定义urlpatterns时,用的是path方法,不能使用正则表达式,用url可以正常识别正则表达式。


另附正则表达式的元字符:


好的,这是一个很常见的需求,下面是实现该功能的步骤: 1. 创建一个Django项目和应用程序 首先,你需要创建一个Django项目和应用程序。你可以使用以下命令来创建一个名为myproject的项目和一个名为myapp的应用程序: ``` django-admin startproject myproject cd myproject python manage.py startapp myapp ``` 2. 创建一个用户模型 在myapp文件夹下的models.py文件定义一个用户模型,包含用户名、密码、年龄和电子邮件等字段。例如: ``` from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser): age = models.IntegerField(null=True, blank=True) email = models.EmailField(unique=True) ``` 这里我们继承了Django自带的AbstractUser模型,并添加了age和email字段。 3. 创建一个注册表单 在myapp文件夹下创建一个forms.py文件,用于定义一个注册表单。表单包含用户名、密码、年龄和电子邮件等字段。同,在注册表单添加一个自定义的email字段,用于验证电子邮件格式是否正确。例如: ``` from django import forms from django.contrib.auth.forms import UserCreationForm from .models import User class RegistrationForm(UserCreationForm): email = forms.EmailField(required=True, widget=forms.TextInput(attrs={'placeholder': 'Email'})) class Meta: model = User fields = ('username', 'email', 'age', 'password1', 'password2') def clean_email(self): email = self.cleaned_data.get('email') if User.objects.filter(email=email).exists(): raise forms.ValidationError("This email address is already in use. Please supply a different email address.") return email ``` 在这里,我们继承了Django自带的UserCreationForm表单,并添加了email字段。同,我们也为email字段添加了自定义的验证规则,以确保电子邮件格式正确,并且该电子邮件地址未被注册过。 4. 创建一个注册视图 在myapp文件夹下的views.py文件定义一个注册视图。此视图将渲染注册表单,并在用户填写表单并提交,将其保存到数据库。例如: ``` from django.shortcuts import render, redirect from .forms import RegistrationForm def register(request): if request.method == 'POST': form = RegistrationForm(request.POST) if form.is_valid(): form.save() return redirect('home') else: form = RegistrationForm() return render(request, 'register.html', {'form': form}) ``` 在这里,我们处理了POST请求,获取表单数据,并将其保存到数据库。如果表单无效,则将其返回到注册页面。 5. 创建一个注册模板 在myapp文件夹下创建一个templates文件夹,并在其创建一个register.html模板。在该模板,我们将渲染注册表单,并通过JavaScript添加电子邮件验证。例如: ``` {% extends 'base.html' %} {% block content %} <h2>Register</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Register</button> </form> <script> var emailInput = document.querySelector('input[name="email"]'); var emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; emailInput.addEventListener('input', function() { if (emailPattern.test(emailInput.value)) { emailInput.setCustomValidity(''); } else { emailInput.setCustomValidity('Invalid email address'); } }); </script> {% endblock %} ``` 在这里,我们使用Django的模板语言渲染注册表单。同,我们还在模板添加了一段JavaScript代码,用于验证电子邮件地址的格式。 6. 添加URL路由 在myapp文件夹下的urls.py文件添加一个URL路由,用于将/register路径映射到注册视图。例如: ``` from django.urls import path from .views import register urlpatterns = [ path('register/', register, name='register'), ] ``` 现在,你就可以在浏览器访问/register路径,查看注册页面并测试注册功能了。 希望这个回答能够帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值