zoukankan      html  css  js  c++  java
  • 完美主义者的最终框架

    Django模型是与数据库相关的,与数据库相关的代码一般写在 models.py中,Django支持sqlite3,MySQL,PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用。

    Model相对于传统的三层或者mvc框架来说就相当于数据处理层,它主要负责与数据的交互,在使用django框架设计应用系统时,需要注意的是django默认采用的是orm框架中的codefirst模型,也就是说开发人员只需要专注于代码的编写,而不需要过多的关注数据库层面的东西,把开发人员从数据库中解放出来

    django会根据Model类生成一个数据库镜像文件,然后再使用该镜像文件生成数据库,同时该文件将记录与数据库同步版本的变化,所以在使用django进行开发时不要手工去修改数据库,这样会造成django框架的版本记录不正确,从而无法正确的同步数据模型与数据库的内容。Django中引用了ORM(Objects Relational Mapping)对象关系映射,对不同的数据库都提供了同一调用的API。ORM是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。可以简单理解为翻译机。

    下面通过简单的代码来看看model是怎么创建数据库的。

    创建工程和APP

    创建工程:

    django-admin startproject douban

    创建应用:

    在douban工程项目目录下输入:

    python manage.py startapp book(你想建立的app名称)

    建立一个叫book的app

    这样,在你的工程项目douban目录下会出现一个叫book的目录

    将我们新建的应用(book)添加到 settings.py 中的 INSTALLED_APPS中,也就是告诉Django有这么一个应用。

     

    创建Model
    在book目录下进入models.py输入类似下面的代码:

     

    上面的每个class相当于一个新的table

    django会自动给每个model配置一个名为id的primary key

    同步数据库
    在shell中输入

    python manage.py makemigrations       #建立了模型到表的映射关系

    python manage.py migrate                        #生成表

    之后你应该能看到诸如:

    Creating tables...

    Creating tablebooks_publisher

    Creating tablebooks_author

    Creating tablebooks_book_authors

    Creating tablebooks_book

    Installingcustom SQL ...

    Installingindexes ...

    Installed 0object(s) from 0 fixture(s)

    这样的信息

    使用Navicat可以直观看到生成的表

     

    数据库的增删改查
    (插入一个新的对象) insert:

    在python-shell下面操作可以直接操作


    from book.modelsimport Author
    Ø 方法1:
    p1 =Author(name='zhangsan',age=30,email='zhangsan@126.com')
    p1.save()
    Ø 方法2:
    p1 = Author()
    p1. name='zhangsan'
    p1.age =30
    p1.email='zhangsan@126.com'
    p1.save()
    Ø 方法3:
    Author.objects.create(name='zhangsan',age=30,email='zhangsan@126.com')
    Ø 方法4:
    Author.objects.get_or_create(name='zhangsan',age=30,email='zhangsan@126.com)
    第4种方法是防止重复很好的方法, 但是速度要相对慢些, 返回一个元组, 第一个为Author对象, 第二个为True或False,新建时返回的是True, 已经存在时返回False.

    (查询或选择对象)select:

    在python-shell下面操作可以直接操作

     

    (更新对象)update:

    在python-shell下面操作可以直接操作

     

    (删除对象)delete:

    在python-shell下面操作可以直接操作

     


    ————————————————

  • 相关阅读:
    C# DataGridView搜索
    C# DataGridView插入DB
    C# 扩展类
    C# Clone控件
    C# 动态事件示例
    C# 遍历控件 示例
    c的详细学习(11)文件
    c的详细学习(10)结构体与共用体的学习(二)
    c的详细学习(9)结构体与共用体的学习(一)
    c的详细学习(8)指针学习(二)
  • 原文地址:https://www.cnblogs.com/eflypro/p/11771307.html
Copyright © 2011-2022 走看看