3.3.orm介绍与model设计

无ORM

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='utf8' )
cursor = db.cursor()                    # 使用cursor()方法获取操作游标 
cursor.execute("SELECT VERSION()")        # 使用execute方法执行SQL语句
data = cursor.fetchone()                 # 使用 fetchone() 方法获取一条数据
print "Database version : %s " % data
db.close()                                # 关闭数据库连接

使用django的Model

编写model

message/models.py

from django.db import models


class UserMessage(models.Model):
    name = models.CharField(max_length=20, verbose_name='用户名')
    email = models.EmailField(verbose_name='邮箱')
    address = models.CharField(max_length=100, verbose_name='联系地址')
    message = models.CharField(max_length=500, null=True, blank=True, default='', verbose_name='留言信息')
    object_id = models.CharField(max_length=50, primary_key=True, default='', verbose_name='id')

    class Meta:
        db_table = 'user_message'             # 表名,默认为{app名}_{model名}
        ordering = ('-object_id',)             # 按object_id倒序排列
        verbose_name = '用户留言信息'            # 注释信息,会自动加上s,表示复数
        verbose_name_plural = verbose_name    # 注释信息,会自动加上s,表示复数

注册models

hello_django/settings.py

生成数据表

model的增删查改

添加数据

删除数据

查询所有数据

按条件查询

按条件模糊查询

注意:icontains中的 i 代表忽略大小写

排序

按点击数排序,取前三条记录

Last updated

Was this helpful?