Django-模型
来源:互联网 发布:cf咪咕刷枪软件 编辑:程序博客网 时间:2024/05/22 02:30
视图:处理主观逻辑,返回响应结果,常与DB交互(前段页面用漂亮的格式显示)
数据库驱动站点
Django鼓励松耦合即对不同部分的严格分割,通过模板可以做到业务逻辑和表现逻辑分隔
软件架构的模式
MVC:抽象数据存取方式,单独一层显示数据,中间控制
MTV:模型,模板,M与T之间的桥梁
数据库配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'books.sqlite3'), }}
应用程序:是代码,一套Django功能的合集,Django还内建了一些app(注释和管理)
如果要使用模型,必须建立app
project:是建立配置文件
创建app:python manage.py startapp appname
模型
many-to-many
one-to-many
foreign key
每一个数据库表对应一个类,Django自动设置主键,自动增长
模型安装(激活):
#加入books appINSTALLED_APPS = [ 'books.apps.BooksConfig']
让模型生效:manage.py makemigrations books
将模型应用至DB:manage.py migrate
基本数据的访问
python manage.py shell :在shell中进行访问
导入模型类的实例
创建类实例,并设置字段值
save()
类.objects.get() 取出信息
类.objects.all()
如果需一步对象的创建与存储至数据库
类.objects.create()
- 添加模块字符串的表现
class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharField(max_length=50) city = models.CharField(max_length=60) state_province = models.CharField(max_length=30) country = models.CharField(max_length=50) website = models.URLField() def __str__(self): return u'%s%s'%(self.name,self.address) #告诉python如何将对象以Unicode的方式显示
- 插入和更新
- 选择对象
- 限制返回的数据
- 排除符合条件的数据
- 连锁查询
- 对指定模型的缺省查询
设置与特定模型相关的选项
class Publisher(models.Model): name = models.CharField(max_length=30) class Mate: ordering=['name']
- 删除符合条件的结果
- QuerySet可迭代
详细的QuerySet参见:https://code.ziqiangxuetang.com/django/django-queryset-api.html
补充
在模型中使用imageField,需要安装pillow
在setting中添加上传文件路径
#settingMEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')#urls中if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
阅读全文
0 0
- DJANGO模型
- Django:模型
- Django 模型
- Django-模型
- Django 模型
- Django 模型
- Django模型
- Django模型
- Django模型
- Django-模型
- 【Django】Django 模型 使用指南
- Django系列四:Django 模型
- django模型一
- django模型1
- django模型2
- django模型3
- django模型4
- django模型5
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- Spring MVC自定义数据绑定--HandlerMethodArgumentResolver
- Java之二元运算
- 【每日一题(14)】函数F(x) HRBUST
- linux-命令sed 使用技巧
- Django-模型
- 安卓简易理财
- 169. Majority Element
- html 标签a 如何跳出iframe
- 2017.12.05 Linux文件编程
- 12.Linux文件编程
- python基础-信号量Semaphore(进程_线程)、事件Event(进程_线程)
- 【hihoCoder 1650】扁平化管理 【java 二分】
- 深度学习和普通机器学习之间有何区别?