赞
踩
Django的ORM是Python开发者的利器,它简化了数据库操作,让编码更加高效和直观。本文将带你快速了解ORM的基本概念,指导你创建模型类、执行迁移、利用admin控制台,并探索ORM的视图操作。
ORM(object relational mapping) :对象关系映射
ORM映射是双向的:既可以将类映射成表,也可以将表映射成类
1. 创建模型类,在models.py中创建类
2. 自定义类,需要继承models.Model
3. 自定义属性
4. 需要添加Meta()元类,指定当前类迁移完成后,在数据库表中的名字
5. 执行生成迁移文件的命令:`python manage.py makemigrations`
6. 执行具体迁移操作:`python manage.py migrate`
7. 打开pycharm中Database选项,找到sqlite选项,选择项目中的数据库文件
通过ORM映射在子应用app下的models.py文件中创建模型类:
#myapp/models.py
from django.db import models
# Create your models here.
class Weather(models.Model):
weather = models.CharField(max_length=100,verbose_name="天气")
def __str__(self):
return self.weather
class Meta:
db_table='修改'
verbose_name_plural = "天气"
# 设置当前表名的一个可读的性更好的名字
在这里我们使用到了 django 的ORM映射关系用来创建数据库表,继承自models.Model类,一个类用来表示一张表,类中的一个属性代表一个字段。
APP
涉及到了数据库的使用时,要记得在settings
文件中进行配置#myproject/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
接下来通过manage.py命令行管理工具提供的两条,创建我们所需要的数据
python manage.py makemigrations # 创建数据库迁移文件
python manage.py migrate # 根据数据库迁移文件生成对应 SQL 语句并执行
admin控制台是 django 为我们提供的一个非常便捷的用来管理数据库的界面,
在主路由文件下,它对应的路由设置:path('admin/', admin.site.urls)
python manage.py createsuperuser
登录进入后:
并没有出现迁移后的表,这就要对模型类进行 注册
在app下的admin.py文件中进行模型类的注册:
#myapp/admin.py
from django.contrib import admin
from myapp import models
admin.site.register(models.Weather)
#使用 register 函数接收模型类作为参数即可完成注册
注册完成,刷新页面即可看到weather表
最后,在视图中进行数据库操作,获取数据库中的数据来渲染到页面上,修改之前所编写的视图,并使用ORM的数据库操作获取数据
# myapp/views.py
from django.shortcuts import render
from myapp import models
def index(request):
#使用**all**方法,获取某表中的所有数据
weathers = models.Weather.objects.all()
content = {
"weathers": weathers,
}
return render(request, 'index.html', content)
<!DOCTYPE html>
<html lang="en">
{% load staticfiles %}
<head>
<meta charset="UTF-8">
<title>hi</title>
</head>
<body>
{% for weather in weathers %}
<p>{{ weather }}</p>
{% empty %}
<p>没有任何天气</p>
{% endfor %}
</body>
</html>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。