1.报错
cryptography相关的错误先确定是否下载cryptography包
pip install cryptography
2. 创建超级用户
python .\manage.py createsuperuser
第一个是用户名 尽量用英文,第二个是邮箱 可以跳过 第三个是密码 密码是不可见的
不要使用数字键盘 需要输入两次密码。
如果打的太快出现python命令行 输入exit() 退出
3.注册超级用户
需要admin.py中添加注册信息
from django.contrib import admin
from myapp.models import Game # 先导入
# Register your models here.
admin.site.register(Game) # 在注册
4.MVT三层联动
myapp.models中的game类
from django.db import models
# Create your models here.
# 模型类 会自动生成id字段
class Game(models.Model):
# CharField 字符串 max_length 最大长度 verbose_name 后台管理的字段名
name = models.CharField(max_length=20,verbose_name='角色名')
# IntegerField 整型
atk = models.IntegerField(verbose_name='攻击力')
level = models.IntegerField(verbose_name='等级')
在views.py中先导包获取模型层中的模型类
from myapp.models import Game
定义视图函数获取数据
# 通过Game模型类,取出数据块中的数据(ORM操作),取出所有角色信息
def MyView(request):
game_data=Game.objects.all()
content = { # 传递给页面的数据,字典格式
'games':game_data
}
# 返回一个模板页面
return render(request,'index2.html',content)
5.在模板页面渲染出来
<body>
<h3>展示数据库中的角色信息</h3>
<table border="1px">
<tr>
<th>编号</th>
<th>名字</th>
<th>攻击力</th>
<th>等级</th>
</tr>
{% for game in games %}
<tr>
<td>{{ game.id }}</td>
<td>{{ game.name }}</td>
<td>{{ game.atk }}</td>
<td>{{ game.level }}</td>
</tr>
{% endfor %}
</table>
</body>
6.解析GET请求
解析get请求中的query参数127.0.0.1:8000/myview/?page=10&id=1001
def MyView(request):
page = request.GET.get('page')
id = request.GET.get('id')
return HttpResponse(f'这是一个视图,页数为{page},id为{id}')
解析结果为‘这是一个视图,页数为10,id为1001’
7.POST请求处理
编写表单页面,在表单中发送POST请求提交数据
<body>
<h3>表单页面</h3>
<form method="post" action="/myview2/">
{% csrf_token %}
账号: <input type="text" name="user">
密码: <input type="password" name="pwd">
<input type="submit" value="提交">
</form>
</body>
# ------------------------------------------------------
# 解析POST请求
def MyView2(request):
user = request.POST.get('user')
pwd = request.POST.get('pwd')
return HttpResponse(f"这是第二个视图,账号:{user},密码:{pwd}")
8.解决CSRF问题的两种方法
1.注释setting.py中MIDDLEWARE与CSRF相关的中间键
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
2.在表单中添加{%csrf_token%}