1.数据模型
1.什么是数据模型
一般来说,每一个模型都映射一张数据库表。对数据库进行操作,那么数据表就必须与模型进行映射
基础:
- 每个模型都是一个 Python 的类,这些类继承
django.db.models.Model
- 模型类的每个属性都相当于一个数据库的字段。
- 利用这些,Django 提供了一个自动生成访问数据库的 API
以下是一个数据模型示例:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
2.Meta选项
使用内部 Meta
类 来给模型赋予元数据。模型的元数据即“所有不是字段的东西”,比如排序选项( ordering
),数据库表名( db_table
),或是阅读友好的单复数名( verbose_name
和 verbose_name_plural
)。这些都不是必须的,并且在模型当中添加 Meta
类 也完全是可选的。
class Meta:
ordering = ["horn_length"]
verbose_name_plural = "oxen"
例如,要将一个模型映射到某张表上,那么就需要在Meta中设置db_table=TableName.
当视图函数中使用数据模型时,请求数据格式为form-data
2.上传文件到静态资源
1.设置静态资源文件夹
首先需要在项目目录下新建一个文件夹用于存储静态资源。
2.将静态资源的目录配置到urls文件和settings文件中
settings文件示例:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urls文件:
urlpatterns = ([
path('eg1/', include('eg1.urls')),
path('eg2/', include('eg2.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) )
3.映射文件的数据模型
以下为示例:
class File(models.Model):
fileName = models.CharField(max_length=10)
fileUrl = models.CharField(max_length=20)
id = models.AutoField(primary_key=True)
class Meta:
db_table = 'file'
4.视图函数的开发
1.接受文件参数:
uploaded_file = request.FILES['file']
然后将文件与存储文件其他相关信息的数据模型使用save方法依次保存即可。