``python
注册功能
1.将注册信息保存到数据库
2.判断注册的用户名是否存在如果存在则提示用户名已经存在
3.如果注册成功,重定向到登录页面
登录功能
1.需要获取 用户信息,比较用户名和密码
2.如果正确,重定向到首页,在首页展示 所有的 英雄数据
3.登录失败, 重定向到登录页面
首页功能
1.在首页查询展示所有的英雄数据
2.创建项目, 创建APP
3.创建英雄模型类
名字 攻击力 防御 生命值 技能 蓝条
4.需要自己设计用户表
```
注册思路:
有注册页面---你想用户注册哪些信息那就写好对应的表单
将注册信息添加到数据库中,---用户模型类,django中添加数据的写法
实际上注册就是添加数据,需要注意字段是否匹配
登录思路:
登录相当于查询数据
1. 创建django项目
2. 创建django应用
3. 配置文件
数据库、模板目录、注册app
4. 写模型类:相当于创建数据表,和迁移一起操作
5. 迁移
6. 创建超级用户
7. 注册模型类
8. 写视图函数
9. ```python
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. ```python
urlpatterns = [
# 配置注册路由
path('register/',views.Register.as_view()),
# 配置英雄路由
path("hero/<str:name>/",views.Hero.as_view()),
path("hero/<int:id>/", views.Hero.as_view())
]
```
12. 启动项目访问
```html
<!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>
### 步骤
编写模型类、迁移
在数据库中,生成数据表---相当于是mysql中创建表
create table 表名(
字段1 类型 约束,
字段2 类型 约束
)
1.mysql中每条字段之间要用逗号隔开,但是django中不能出现逗号,出现即报错
django中数据类型
字符串字段:CharField
整数字段:IntegerField
小数字段:
金钱有关:DecimalField
一般小数:FloatField
时间字段:
日期:DateField
时间:TimeField
日期时间:DateTimeField
字段属性:
字段通用属性:所有字段都可以用的
verbose_name:字段起别名,在admin管理后台中能看见效果
字段特殊属性:特定字段可以使用
max_length
元选项:
元类一定属于模型类中的一部分,不能单独使用
当表已生成,如果需要重新修改模型类,此时要删除数据库,删除迁移文件重新进行迁移
创建商品模型类
name price num hire_date
先进入测试环境 python manage.py shell
导包:需要导入使用的模型类
增:
```python
1.直接利用模型类创建对象,然后保存
对象名 = 类名()
goods1 = Goods(name="沙糖桔",price=3.98,num=200)
# 保存对象 只有调用save方法才能真正将数据保存到数据库中
goods1.save()
2.利用模型类管理器添加数据
模型类.objects.create()
```
删
改
查