Django-模型
博客专区 > cold丶 的博客 > 博客详情
Django-模型
cold丶 发表于3年前
Django-模型
  • 发表于 3年前
  • 阅读 33
  • 收藏 6
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: modls.py

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

 

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 7
码字总数 2289
×
cold丶
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: