环境搭建以及项目创建可以参考上一篇文章,这里我就略过了
Anaconda搭建django环境和创建项目
下面直接开始
环境:Python 3.5 Django 2.2.1
1.创建独立app
建议独立app的好处是功能模块化,后期更易维护
-
创建app
-
在项目配置文件中添加app名称
2.创建模型models
- 构建User表
class User(models.Model):
username = models.CharField(max_length=32)
email = models.EmailField()
password = models.CharField(max_length=32)
- 生成迁移文件、执行迁移
python manage.py makemigrations
python manage.py migrate
3.构建注册页面
- 注意是在User下创建templates文件夹,然后创建和app同名的文件夹 ,因为这样最后在项目整合、收集文件时才不会有问题。
- csrf_token 是django为用户实现防止跨站请求伪造的功能,简单点说就是进行post请求时,会添加一个随机的校验值到form表单中
<form action="" method="post">
{% csrf_token %}
<p>用户名:<input type="text" name="username" placeholder="用户名"></p>
<p>邮箱:<input type="email" name="email" placeholder="邮箱"></p>
<p>密码:<input type="password" name="password" placeholder="密码"></p>
<input type="submit" value="注册">
</form>
4.构建注册视图函数
from django.shortcuts import render
from User.models import User
# Create your views here.
def register(request):
if request.method == "POST":
username = request.POST.get('username')
email = request.POST.get('email')
password = request.POST.get('password')
user = User()
user.username = username
user.email = email
user.password = password
user.save()
return render(request,'user/register.html')
5.构建独立路由
- 主路由指出子路由
- 子路由指向视图函数
6.注册完成
- 页面进行注册
- 查看数据库是否保存成功
注册完成,下面开始登录
登录的页面搭建、路由设置和注册一样,这里就跳过了,直接编写视图函数了
def login(request):
if request.method == "POST":
email = request.POST.get('email')
password = request.POST.get('password')
user = User.objects.get(email=email)
if password == user.password:
return HttpResponse('登录成功')
else:
return HttpResponse('登录失败')
return render(request,'user/login.html')
总结
我这里只是简单的实现登录注册功能,优化的方案还很多,ajax提交,form表单类验证,密码加密处理等等,剩下的各位自由发挥。