admin控制台
admin控制台概念
admin控制台是django为我们提供的一个非常便捷的用来管理数据库的界面在**主路由文件**下,
path('admin/',admin.site.urls)是它对应的**路由设置**
admin控制台超级用户
进入admin界面,会提示我们输入账号,密码,这是因为admin界面是需要一个超级管理员来登陆访问的,所以需要创建
admin界面下的**超级用户**
执行命令:python manage.py createsuperuser
创建完之后就可以进入admin界面了
admin界面已经展示出了默认django所使用的两张表,**用户表**和**组表**
用来保存当前管理台后台的**用户**以及对应**权限分组**
admin控制台模型类注册
在子应用下的admin.py文件中进行模型类的注册
from django.contrib import admin
from workers.models import Worker
# Register your models here.
admin.site.register(Worker)
#使用 register 函数接收模型类作为参数即可完成注册
ORM视图操作
子应用视图使用ORM
在视图中进行数据库操作,**获取数据库中的数据**来渲染到页面上
如何通过ORM操作模型类
使用**all**方法,获取表中的所有数据
from django.shortcuts import render
from workers.models import Worker
# Create your views here.
def MyView(request):
worker_data = Worker.objects.all()
content={
'workers':worker_data
}
return render(request,'index.html',content)
模版页面数据渲染ORM操作结果
渲染遍历出每一条数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1px" width="400px" align="center">
<tr>
<td>编号</td>
<td>姓名</td>
<td>职位</td>
<td>工资</td>
</tr>
{% for worker in workers %}
<tr>
<td>{{ worker.id }}</td>
<td>{{ worker.name }}</td>
<td>{{ worker.post }}</td>
<td>{{ worker.sal }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
视图请求
视图的组成
request响应用户的请求
HttpRequest接收用户的请求
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def MyView(request):
return HttpResponse("这是一个视图")
get和post的区别
get用于获取信息
post用于更新信息
get请求处理
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def MyView(request):
page = request.GET.get('page')
id = request.GET.get('id')
return HttpResponse(f"这是一个视图,当前页数为{page},id为{id}")
post请求处理
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def MyView2(request):
user = request.POST.get('user')
pwd = request.POST.get('pwd')
return HttpResponse(f"账号为{user},密码为{pwd}")
用一个视图函数使用post提交的数据
<h3>表单页面</h3>
<form method="post" action="/myview2/">
账号:<input type="text" name="user">
密码:<input type="password" name="pwd">
<input type="submit" value="提交">
</form>
接下来页面显示的是:账号为user密码为pwd
报错处理
__init__
self.connect()
File "C:\Users\马家伟\AppData\Local\Programs\Python\Python37\lib\site-packages\pymysql\connections.py", line 664, in connect
raise exc
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")
解决方案:这是因为没有启动数据库启动就好了
"'cryptography' package is required for sha256_password or caching_sha2_password auth methods"
RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods
解决方案:这是因为没有安装cryptography
执行:pip install cryptogaphy
进行安装,但是可能还会报错是因为版本低
执行:python -m pip install -upgrade pip
进行跟新最后安装即可