创建用户账户
2.1应用程序users
startapp创建users应用程序
PS C:\Users\hp\Desktop\learning_log> python manage.py startapp users
PS C:\Users\hp\Desktop\learning_log> dir
目录: C:\Users\hp\Desktop\learning_log
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2021/3/1 14:11 .vscode
d----- 2021/3/2 17:17 learning_log
d----- 2021/3/4 23:21 learning_logs
d----- 2021/3/6 23:01 users
-a---- 2021/3/1 17:23 143360 db.sqlite3
-a---- 2021/3/1 14:17 690 manage.py
2.2将users添加到settings.py
INSTALLED_APPS = [
'learning_logs',
'users',
# 默认添加的应用程序
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
2.3包含users的URL
urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('users/', include('users.urls')),
path('', include('learning_logs.urls')),
]
2.4登陆界面
learning_log/users 新建urls.py
'''为应用程序users定义URL模式'''
from django.urls import path, include
app_name = 'users'
urlpatterns = [
# 包含默认的身份验证URL
path('', include('django.contrib.auth.urls')),
]
1.模板login.html
users 新建 templates 、registration文件夹 新建login.html
{% extends "learning_logs/base.html" %}
{% block content %}
#显示一条错误信息
{% if form.errors %}
<p>Your username and password did not match.Please try again.</p>
{% endif %}
#实参action设置为登录页面的URL
<form method="post" action="{% url 'users:login' %}">
{% csrf_token %}
#显示这个菜单
{{ form.as_p}}
<button type="submit">Log in</button>
#隐藏表单元素next,成功后返回到主页
<input type="hidden" name="next" value="{% url 'learning_logs:index' %}" />
</form>
{% endblock content %}
2.链接到登录页面
base.html
#验证用户是否登录
<a href="{% url 'learning_logs:topics' %}">Topics</a> -
{% if user.is_authenticated %}
Hello,{{ user.username }}.
{% else %}
#如果未登录,显示登录链接
<a href="{% url 'user:login' %}">Log in</a>
{% endif %}
3.使用登录页面
bug太多,跳过