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)
原创粉丝点击