Django-模型

基于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()

 

 

转载于:https://my.oschina.net/u/1860571/blog/492494

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值