django初识下和视图

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
进行跟新最后安装即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值