文档章节

Django-模型

cold丶
 cold丶
发布于 2015/08/14 16:59
字数 570
阅读 37
收藏 6

基于MVC框架models。views。controller

M(moedels)T(template)V(views)

数据库配置:

 支持:PostgreSQL、MYSQL、ORACLE、SQLite.

在setting.py文件中配置: ' '

  DATABASE_ENGINE= ' '  数据库引擎

  DATABASE_NAME= ' '    数据库名

  DATABASE_USER= ' '      用户名

  DATABASE_PASSWORD= ' ' 密码

  DATABASE_HOST = ' '     主机

一些常见错误

错误信息 解决方法
You haven’t set the DATABASE_ENGINE setting yet. 不要以空字符串配置`` DATABASE_ENGINE`` 的值。 表格 5-1 列出可用的值。
Environment variable DJANGO_SETTINGS_MODULE is undefined. 使用`` python manager.py shell`` 命令启动交互解释器,不要以`` python`` 命令直接启动交互解释器。
Error loading _____ module: No module named _____. 未安装合适的数据库适配器 (例如, psycopg  MySQLdb )。Django并不自带适配器,所以你得自己下载安装。
_____ isn’t an available database backend. DATABASE_ENGINE 配置成前面提到的合法的数据库引擎。 也许是拼写错误?
database _____ does not exist 设置`` DATABASE_NAME`` 指向存在的数据库,或者先在数据库客户端中执行合适的`` CREATE DATABASE`` 语句创建数据库。
role _____ does not exist 设置`` DATABASE_USER`` 指向存在的用户,或者先在数据库客户端中执创建用户。
could not connect to server 查看DATABASE_HOST和DATABASE_PORT是否已正确配置,并确认数据库服务器是否已正常运行。

创建第一个程序

models.py

from django.db import models          
class Publisher(models.Model):        #Publisher:出版商
    name = models.CharField(max_length = 10)
    address = models.CharField(max_length = 50)
    city = models.CharField(max_length = 20)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()
    
    foreign = models.ForeignkeyField(max_length = 20) #外键约束
    data = models.DataField(max_length = 20)          #日期型 TimeFileld、DateTimeField
    flt = models.FloatField(max_length = 20)          #数字型 IntegerField、DecimalField

 表名 = app名称+小写类名(会把_替换为空格)       

python manage.py validate(验证有效性)

python manage.py syncdb (创建数据表)

python manage.py sqlall app名(显示创建表SQL语句)

 在每个模型里加入__unicode__()方法

    def __unicode__():

            return u'%s %s' % (self.name,self.city)

插入更新数据

p = Publisher(name = 'jay', city = 'CHINA', country='bj')

p.save()

p = Publisher.objects.getname(name='joy')

p.name = 'jjj'

p.save()

查询数据

Publisher.objects.all()          #相当于select *   取出全部数据

Publisher.objects.filter(name = 'joy') #相当于 where name="joy" 

Publisher.objects.filter(name__container = 'joy') #相当于 name like '%joy%'

Publisher.objects.get(name = 'joy') #获取单个对象。而不是整个列表

Publisher.objects.filter.order_by(name='joy')

Publisher.objects.order_by('name')[0] #限制返回数据 [0:2]

数据排序

Publisher.objects.order_by("name") #可以是多个参数,以逗号分隔

Publisher.objects.order_by("-name")#逆向排序

在Publisher类中添加

    class Meta:

        ording = ['name']  默认排序

 

删除

p.delete()

Publiser.objects.all().delete()

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: 获取日期
下一篇: django-模版
cold丶
粉丝 0
博文 7
码字总数 2289
作品 0
石景山
私信 提问
Django 学习笔记之模型高级用法(下)

接着上篇文章内容,本文分享自己对模型一些用法的总结。 1 模型的元数据Meta 除了抽象模型,在模型中定义的字段都会成为表中的列。如果我们需要给模型指定其他一些信息,例如排序方式、数据库...

猴哥Yuri
04/27
0
0
Django学习2--创建应用程序、models模型管理、系统管理后台

创建app: 这里,我创建一个资产系统的app,名为assets: # cd iceny python manage.py startapp assets cd assets ls admin.py apps.py init.py migrations models.py tests.py views.py s......

icenycmh
06/29
0
0
简化 Django 开发的八个 Python 包

这个月的 Python 专栏将介绍一些 Django 包,它们有益于你的工作,以及你的个人或业余项目。 Django 开发者们,在这个月的 Python 专栏中,我们会介绍一些能帮助你们的软件包。这些软件包是我...

作者: Jeff Triplett
10/05
0
0
史上最友好的 Django 入门教程

Django是使用Python开发的开源Web开发框架。使用Django,你能以最小的代价构建和维护高质量的Web应用。 我们参考Django 官方文档,制作了一门新手更容易理解的Django 基础教程 ,帮助大家更好...

实验楼
07/26
0
0
Python Web 应用程序 Django 框架简介

在这个比较 Python 框架的最后一篇中,让我们看看 Django。 在本系列(由四部分组成)的前三篇文章中,我们讨论了 Pyramid、Flask 和 Tornado 这 3 个 Web 框架。我们已经构建了三次相同的应...

作者: Nicholas Hunt-walker
11/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

node.js学习笔记之koa框架和简单爬虫练习

Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,可以免除重复繁琐的回调...

前端小攻略
4分钟前
0
0
JavaScript中的继承及实现代码

JS虽然不像是JAVA那种强类型的语言,但也有着与JAVA类型的继承属性,那么JS中的继承是如何实现的呢? 一、构造函数继承 在构造函数中,同样属于两个新创建的函数,也是不相等的 function Fn...

peakedness丶
25分钟前
1
0
记一次面试最常见的10个Redis"刁难"问题

导读:在程序员面试过程中Redis相关的知识是常被问到的话题。作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题。十分值得一读。 Redis在...

小刀爱编程
38分钟前
14
0
TiDB Lab 诞生记 | TiDB Hackathon 优秀项目分享

本文由红凤凰粉凤凰粉红凤凰队的成员主笔,他们的项目 TiDB Lab 在本届 TiDB Hackathon 2018 中获得了二等奖。TiDB Lab 为 TiDB 培训体系增加了一个可以动态观测 TiDB / TiKV / PD 细节的动画...

TiDB
51分钟前
4
0
当区块链遇到零知识证明

本文由云+社区发表 当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相信某个论断是正确的。这个定义有点抽象,下面笔者举...

腾讯云加社区
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部