Django URL name详解(运用相对路径,修改匹配正则后可减少修改量)
将Temlate中所有的修改为相对路径url
<a style="color:white" class="fr registerbtn" href="{% url 'Register' %}">注册</a>
<a style="color:white" class="fr loginbtn" href="{% url 'user_login' %}">登录</a>
将所有的静态文件修改为相对路径staticfile(前提在setting中设置好STATIC_URL 和STATICFILES_DIRS才能找到路径)
以后所有写成相对路径
#模板中添加声明
{% load staticfiles %}
#添加方法,如此以来,即使修改了static的路径也不会修改,因为引用的是相对路径
<link rel="stylesheet" type="text/css" href="{% static 'css/reset.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'css/animate.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
安装Django-simple-captcha,用于生成验证码。
Installation
1、Install django-simple-captcha via pip: pip install django-simple-captcha
2、Add captcha to the INSTALLED_APPS in your settings.py
3、Run python manage.py migrate
4、Add an entry to your urls.py:
urlpatterns += [
url(r'^captcha/', include('captcha.urls')),
]
添加验证吗
在app.form中建立register_form表单,定义好注册需要的字段(form可自动生成input框)【form实现了后台与前端的交互】
class RegisterForm(forms.Form):
Email = forms.EmailField(required=True)
Password = forms.CharField(required=True,min_length=5)
captcha = CaptchaField()
将form加入RegisterView视图中,并将form数据传入Template中
class RegisterView(View):
def get(self,request):
register_form = RegisterForm()
return render(request,'register.html',{'register_form':register_form}) #将register_form数据传递给Template
通过Template将register_form传入html中,生成验证码(form数据可通过Template自动生成input框)
<div class="form-group marb8 captcha1 ">
<label>验 证 码</label>
{
{ register_form.captcha }}
</div>
完成注册的后台逻辑,get方法用于刷新,post方法用于接受用户信息并进行存储
class RegisterView(View):
def get(self,request):
register_form = R