• 完整登录示例(ORM)


    静态文件配置

    settings文件中:

    STATIC_URL = '/static/' # 别名
    
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    
    ]

    在根目录下创建static文件夹,包括js,css,img,plugins等基本文件夹,将文件分类存储,方便重复使用

    在pycharm提供的的templates中创建html文件,将static中的样式引入

    HTML文件配置

    form表单设置

    <form class="form-signin" action="" method="post"> 
    # action指向提交的地址,没写默然是本地
    # method指向http的请求方法

    需要提交数据时,input输入框需要设置name属性,向后台提交数据

    有一个butto按钮或者input type='submit' 点击向后台提交数据

    application

    app创建

    方式一: 在终端

    python manage.py startapp app名称

    方式二: pycharm

    tools选项当中的run manage.py task   输入startapp app名称

     

    方式三: 在pycharm创建项目是,more settings设置中,直接输入application name,项目创建时会一起创建好app,并且在settings进行注册

    app注册

    在settings配置文件中找到相关设置,添加进去

    ORM  对象关系映射

    为了解决面向对象与关系数据库存在的互不匹配的现象的技术,通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中

    在Django中使用mysql的流程:

    1.在cmd终端创建一个数据库

    2.在settings文件中进行数据库的配置

    3.告诉Django使用pymysql模块连接mysql数据库

    在与settings同级目录下的__init__中写入

     

    4. 在app下的models.py中写类(表)

    from django.db import models
    class User(models.Model):                  # 括号内为固定写法 使用类的形式建表  表名为 app名称_小写类名
        username = models.CharField(max_length=32)  # username和password是字段名称
        password = models.CharField(max_length=32)  # 相当于数据库中的约束条件varchar(32) 

     5.在终端执行数据库迁移的命令

    python manage.py makemigrations   # 保存models.py的变更记录 会在migrations文件夹中新建一个文件
    python manage.py migrate          # 将变更记录执行,同步到数据库中  

     在pycharm提供的数据库可视化工具中可以写入向数据库中数据

     

    获取网页提交的数据

    request.method             获取请求方式
    request.POST               获取POST提交的数据 类似字典的形式
    request.POST['username']   根据键查找值,查找不到会报错
    request.POST.get('username','xxx') 根据键查找值,查找不到时可以自定义返回内容

    数据库操作

    models.User.objects.all()      # 所有数据   得到对象列表
    models.User.objects.get(username='alex')  # 获取一个满足条件的对象  没有数据或者查询到多条数据就报错
    models.User.objects.filter(username='alex1')  # 获取满足条件的所有对象  返回对象列表

    重定向

    from django.shortcuts import render, redirect, HttpResponse
    
    return redirect('http://www.xiaohuar.com/hua/')     指向网页链接
    return redirect('/index/')                          指向本地文件
      # 响应头 Location:重定向地址
    def login(request):
        # print(request.POST)    # 获取POST提交的数据 字典形式
        username = request.POST.get('username')     # 根据from表单中的name属性,按照字典的操作获取用户输入的数据 字符串形式
        password = request.POST.get('password')
        # 将用户输入的数据跟数据库中的数据进行校验
        if models.User.objects.filter(username=username,password=password):   #前一个username为数据库字段名,后一个为获取的数据变量
            return redirect('/index/')
        return render(request,'login.html')     # 校验不通过时 还是显示当前页面
    代码示例
  • 相关阅读:
    MySQL —— 程序连接时的驱动名称和URL
    这该称作什么效应?
    Java 基础 面向对象之关键字内部类代码块修饰符
    Java 基础 面向对象之构造方法和关键字
    Java 基础 接口和多态
    Java 基础 面向对象和抽象类
    Java 基础 引用数据类型 ArrayList集合
    Java 基础 方法
    Java 基础 引用数据类型 和 流程控制
    Mongodb 基础 复制集原理和搭建
  • 原文地址:https://www.cnblogs.com/sandy-123/p/10617446.html
Copyright © 2020-2023  润新知