提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 注册思路:
- 登录思路:
注册思路:
有注册页面---你想用户注册哪些信息那就写好对应的表单
将注册信息添加到数据库中,---用户模型类,django中添加数据的写法
实际上注册就是添加数据,需要注意字段是否匹配
登录思路:
登录相当于查询数据
-
创建django项目
-
创建django应用
-
配置文件
数据库、模板目录、注册app
-
写模型类:相当于创建数据表,和迁移一起操作
-
迁移
-
创建超级用户
-
注册模型类
-
写视图函数
9
from django.shortcuts import render,HttpResponse
from django.views import View
from myapp.models import Users,Heros
# Create your views here.
# 定义注册视图
class Register(View):
def get(self,request):
# 将注册页面渲染出来
return render(request,'register.html')
# 获取注册数据
def post(self,request):
name1 = request.POST.get("username")
pwd1 = request.POST.get("pwd")
mobile1 = request.POST.get("mobile")
# 如果数据表中存在相同的用户名提示用户名已存在
# 1.先获取用户表中所有数据 模型类.objects.all()
users = Users.objects.all() # 查询的是用户表中所有信息
# 循环遍历获取到的数据
for user in users: # user:代表每条数据
# name1:代表接收的注册数据
if name1 == user.name:
return HttpResponse("用户名已存在")
try:
# 将数据存到数据库 模型类.objects.create()
Users.objects.create(name=name1,pwd=pwd1,mobile=mobile1)
except Exception as e:
print(e)
return HttpResponse("注册失败")
return HttpResponse("注册成功")
# 想要根据id查询指定的英雄
# 定义英雄的视图
class Hero(View):
def get(self,request,name):
# 查询单条数据 模型类.objects.get(条件)
# hero = Heros.objects.get(id=id)
try:
hero = Heros.objects.get(hname=name)
except Exception as e:
print(e)
return render(request,'hero.html',{"msg":"没有该英雄"})
# 将获取到的数据渲染到页面
return render(request,'hero.html',{"hero":hero})
10.配置路由
11.
urlpatterns = [
# 配置注册路由
path('register/',views.Register.as_view()),
# 配置英雄路由
path("hero/<str:name>/",views.Hero.as_view()),
path("hero/<int:id>/", views.Hero.as_view())
]
12.启动项目访问
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>英雄</title>
</head>
<body>
{#if 后条件成立执行下边对应的代码 不成立执行else的代码 #}
{% if hero %}
英雄名:{{ hero.hname }}
攻击力:{{ hero.att }}
{% else %}
{{ msg }}
{% endif %}
</body>
</html>