zoukankan      html  css  js  c++  java
  • 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.使用模型进行操作

  • 相关阅读:
    js截取字符串区分汉字字母代码
    List 去处自定义重复对象方法
    63. Unique Paths II
    62. Unique Paths
    388. Longest Absolute File Path
    41. First Missing Positive
    140. Word Break II
    139. Word Break
    239. Sliding Window Maximum
    5. Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/doitjust/p/9096616.html
Copyright © 2011-2022 走看看