• Model 模型


    Model 模型
    模型是你的数据的唯一的、权威的信息源。它包含你所存储的数据的必要字段和行为。
    通常,每个模型对应数据库中唯一的一张表。

    • 每个模型都是dhango.db.models.Model 的一个Python子类
    • 模型的每个属性都表示数据中的的一个字段
    • Django提供一套自动生成的用于数据库访问的API。这极大地减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动。

    模型与数据库的关系

    模型负责业务对象和数据库的关系映射
    ORM是“对象-关系-映射”的简称,主要任务是:
    1.根据对象的类型生成表结构
    2. 将对象、列表的操作,转换为sql语句
    3. 将sql查询到的结果转换为对象,类表

    为什么要用模型?
    Model是MVC框剪中重要的一部分,主要负责程序中用于处理数据逻辑的部分。通常模型对象负责在数据库中读取数据。
    它实现了数据模型与数据库的解耦,即数据模型的数据不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。

    配置Mysql数据库
    1.在当前环境中安装mysql

    1 sudo apt-get install mysql-server
    2 sudo apt install mysql-client
    3 sudo apt install libmysqlclient-dev

    2.在当前的python环境中安装pymysql

    1 pip3 install pymysql

    3.在mysql中创建数据库

    1 creat database mydb default charset=utf8

    4.在Django项目中配置数据库
    修改settings.py文件中的DATABASE配置项

     1 DATABASES =[
     2     'default':{
     3     'ENGINE':'django.db.backends.mysql',
     4     'NAME':'mydb', #选择数据库的名,确认你的mysql中有这个库
     5     'USER':'root',
     6     'PASSEORD':'123456',
     7     'HOST':'localhost',
     8     'PORT':'3306',
     9     }
    10 ]

    5.告诉Django在接下来的mysql操作中使用pymysql
    打开mysite/__init__.py ,写入以下代码导入pymydql:

    1 import pymysql
    2 pymysql.install_as_MySQLdb()

    开发流程

    1.在models.py中定义模型类,要求继承自models.Model

     1 from django.db import models
     2 
     3 #Create your models here.
     4 
     5 #用户信息模型
     6 class Users(models.Model):
     7     username = models.CharField(max_length=32)
     8     password = models.CharField(max_length=32)
     9     email = models.CharField(max_length=50)
    10 
    11     #class Meta:
    12     #        db_table = 'polls_users' #指定表名

    上面的指定表名的两行内容可以不写,django会自动生成一个表名。
    例如:如果应用的名称为polls,则生成的表名wiepolls_users。

    2.把应用加入settings.py的installed_app项
    编辑mysite/settings.py文件,并将项目应用文件名添加到INSTALLED_APPS中

     1 INSTALLED_APPS = [
     2 
     3     'django.contrib.admin',
     4 
     5     'django.contrib.auth',
     6 
     7     'django.contrib.contenttypes',
     8 
     9     'django.contrib.sessions',
    10 
    11     'django.contrib.messages',
    12 
    13     'django.contrib.staticfiles',
    14 
    15     'myweb',
    16 ]

    3.生成迁移文件

    python3 manage.py makemigtations

    4.执行迁移

    python3 manage.py migrate

    5.使用模型进行操作

  • 相关阅读:
    vscode远程开发
    iframe父子组件传值
    react项目地址栏添加包名
    记一次lombok踩坑记
    Android Adb修改系统时区 NTP 服务器
    ES文件浏览器4.1.9.7.4任意文件浏览漏洞
    SUID提权之python的os.setuid(0)提权
    PHP-8.1.0-dev 后门命令执行
    将博客搬至CSDN
    零基础快速上手HarmonyOS开发1---为什么要学习HarmonyOS?如何能快速上手?HarmonyOS架构解析、和Android深度对比
  • 原文地址:https://www.cnblogs.com/doitjust/p/9096616.html
Copyright © 2020-2023  润新知