django自我学习(三)

目录

models.py文件在views.py文件中的使用

当输入不正确时提示用户名或密码错误的方法

前端js如何获取后端传送的数据?

通过前端打开文件资源管理器


对我所使用到的django与数据库以及前端交互的手法进行一下总结:

models.py文件在views.py文件中的使用

首先时与数据库的交互:

已知,数据库代码可以使用django中的orm框架去完成,定义在models.py文件之中:

from django.db import models
class User(models.Model):
    #用户id 身份证号 用户名 密码 公司id
    userid = models.CharField(db_column='UserId', primary_key=True, max_length=4)  # Field name made lowercase.
    id = models.CharField(db_column='ID', unique=True, max_length=18, blank=True, null=True)  # Field name made lowercase.
    username = models.CharField(db_column='UserName', max_length=20, blank=True, null=True)  # Field name made lowercase.
    password = models.CharField(db_column='Password', max_length=50, blank=True, null=True)  # Field name made lowercase.
    companyid = models.ForeignKey(Company, models.DO_NOTHING, db_column='CompanyId', blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'user'

然后通过Terminal执行相应代码就可以看到在数据库中创建了有关的表(上一个文档有提到,不再赘述)。

如果我们在编写后端代码时需要使用到数据库的有关内容,就可以通过models.py直接调用:

在views.py中添加下述代码:

from app01.models import *

使用很简单,只需上次介绍的函数即可:

#假如有一个学生表,接下来对这个表进行查询:
#查询学生表中的所有数据,并返回查询集的QuerySet结果集
stus=Student.objects.all()
#查询年龄等于15的学生,并返回查询集的QuerySet结果集
stus=Student.objects.filter(s_age=15)
#查询年龄不等于15的学生,并返回查询集的QuerySet结果集
stus=Student.objects.exclude(s_age=15)
#查询年龄等于15的学生,并返回查询集的QuerySet结果集
stus=Student.objects.get(s_age=15)
#获取所有学生中(按id降序排列)的第一个学生信息
stus=Student.objects.order_by('-id')[0]
stus=Student.objects.order_by('-id').first()
#获取所有学生中(按id降序排列)的最后一个学生信息
stus=Student.objects.order_by('-id').last()

以上其实严格来说上次都已经介绍过,这里就简单提一下,接下来的才是今天的正文部分,仍是备忘录形式的记录~

当输入不正确时提示用户名或密码错误的方法

在用户与前端交互时,我们希望可以判断用户输入账号密码是否正确,当不正确时,提醒用户输入错误。(注意:这个文本只有在用户输入错误时才出现,第一次打开网页时并没有该提示)

在html文件中添加一个占位符text:

<p><span style="color:red">{{ text }}</span><span>找回密码?</span></p>

然后在编写相应视图函数时将占位符替换为所需要的内容:

def userLoad(request):
    if request.method=="GET":
        return render(request,"登录界面.html")
    else:
        print(request.POST)
        #表单提交用户名
        userName=request.POST.get("userName")
        #表单提交密码
        password=request.POST.get("password")
        #定义占位符内容
        text="用户名或密码错误!"
        #从数据库中获取对应id的密码,如果等于表单中的密码,就说明登录成功
        if password==User.objects.filter(userid=userName).first().password:
            user.UserId=userName
            return render(request,"个人中心.html",{'name':User.objects.filter(userid=userName).first().username})
        #否则,登陆失败,显示text占位符内容
        return render(request,"登录界面.html",{'text':text})

这里要说明:我所使用的表单提交方式为post,提交时将占位符text规定好内容一起提交即可。

运行截图,当第一遍输入错误时,就会出现如下结果:

在这里把表单代码也放出来供大家参考:

<form action="" method="post">
  {% csrf_token %}
  <!-- Unnamed (文本框) -->
        <div id="u12" class="ax_default text_field">
          <div id="u12_div" class=""></div>
          <input name="userName" id="u12_input" type="text" value="" class="u12_input"/>
        </div>

        <!-- Unnamed (文本框) -->
        <div id="u13" class="ax_default text_field">
          <div id="u13_div" class=""></div>
          <input name="password" id="u13_input" type="text" value="" class="u13_input"/>
        </div>

        <!-- Unnamed (矩形) -->
        <div id="u14" class="ax_default label">

          <div id="u14_div" class=""></div>
          <div id="u14_text" class="text ">

            <p><span style="color:red">{{ text }}</span><span>找回密码?</span></p>
          </div>
        </div>

        <!-- Unnamed (矩形) -->
        <div id="u15" class="ax_default box_1">
          <div id="u15_div" class=""></div>
          <div id="u15_text" class="text ">
            <p><input type="submit" value="登录" id="u15_submit"></p>
          </div>
        </div>
</form>

前端js如何获取后端传送的数据?

看网上说有好几种方法,其他的还未尝试,只在这里写出一种——json的使用

我对于json的了解不多,在我看来,json是前后端数据交换的一种方式,json的数据一般格式,注意:属性名一定要用双引号而不是单引号:

//json的格式
{
    "name":"value"
}

具体有关json的知识有很多,可以另外参考~

django中可以使用下述方法向前端传送数据:

def xxx(request):
    data= {"arg": "我是json"}
    return render(request,"111.html",{"data":json.dumps(data)})

同时在前端输入:

<script>
    var data={{ data | safe }};
    document.getElementById("1111").innerHTML=data.arg;
</script>

这样就可以了~

通过前端打开文件资源管理器

最后再提一个很小很小的有关于前端的知识点,无意中发现的:

html居然提供打开文件资源管理器的表单!!!我真的费了好半天劲想解决这个问题,结果居然这么简单/(ㄒoㄒ)/~~

<input type="file" accept=".json">

不说了,回去重修吧┭┮﹏┭┮

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值