django怎么判断数据库的记录是否存在

django怎么判断数据库的记录是否存在,第1张

我觉得楼上的回答好像有点问题。大家可以自行验证一下我是否正确。

用get查询的时候,查询不到内容的时候会抛出异常,同样查询结果多余1条的时候也会抛出异常。因此,不能使用get,而应该使用filter。

filer若是查询不到数据,会返回一个空的查询集,[]  type类型是:Queryset。

查询到多余一条的时候会,还是会返回一个包含多个对象的查询集。

所有用filter查询到的是否为'[ ]'来判断是否存在。

userinfo = Usersobjectsfilter(email = requestPOST['email'])

if userinfoexists():

    print("yes,we have this email")

else:

   print("sorry,email is not register")

另外还可以使用count()这个方法,userinfocount() =0的话表示不存在数据,大于0的话表示存在一条或多条。

还有就是楼上的答案:if uerinfo:else:

请教一个 django 数据库查询字段重命名的问题

种办法, 自己挑一种吧第一种:

users = Userobjectsfilter(coreuserwxprofile__nickname__contains=q)values('id', 'coreuserwxprofile__nickname')[0:20]

users = [{'id': _id, 'nick': _coreuserwxprofile__nickname} for _ in users]

1 安装Django

[plain] view plain copy

cd Django-14

python setuppy install

2 安装postgresql的客户端:

[plain] view plain copy

sudo apt-get install -y postgresql-client-91 python-psycopg2

3 新建project:

[plain] view plain copy

django-adminpy startproject myproject

4 在myproject下新建app:

[plain] view plain copy

python managepy startapp myapp

4 新增环境变量:

编辑/etc/profile文件,在末尾加入以下语句:

[plain] view plain copy

<span style="color:#FF0000;"> export PYTHONPATH=$PYTHONPATH:/home/yc/src/myproject

export DJANGO_SETTINGS_MODULE=myprojectsettings</span>

5

假设数据库已经由Django的另一个应用(名称为otherapp)建好,数据库类型是postgresql,名称为mydb,位于

192168123。见好的数据库中有一个表,名称是otherapp_user,则将otherapp/modelspy拷贝到myapp

/modelspy。

注意检查modelspy下的class user类的class Meta:部分,如果没有applabel标签,则要加上:app_label='otherapp'

再修改/home/yc/src/myproject下的settingspy文件,如下:

[plain] view plain copy

DATABASES = {

'default': {

'ENGINE': 'djangodbbackendspostgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'

'NAME': 'mydb', # 'vps2db_test1' Or path to database file if using sqlite3

'USER': 'postgres', # Not used with sqlite3

'PASSWORD': '123', # Not used with sqlite3

'HOST': '192168123', # Set to empty string for localhost Not used with sqlite3

'PORT': '5432', # Set to empty string for default Not used with sqlite3

}

}

[plain] view plain copy

INSTALLED_APPS = (

'djangocontribauth',

'djangocontribcontenttypes',

'djangocontribsessions',

'djangocontribsites',

'djangocontribmessages',

'djangocontribstaticfiles',

'<span style="color:#FF0000;">myapp</span>',

)

6 在myapp目录下编写测试程序

[python] view plain copy

from models import user

if __name__=="__main__":

try:

u = userobjectsget(id=user_id)

except userDoesNotExist:

print "user not exist)

return None

else:

return u

正经回答:先在数据库中建立好视图,然后django中建立对应的model。表所对应的类下面再建立一个Meta类,大致如下

class ViewModel(modelsModel):

    """这个model类对应你所建立好的视图"""

    class Meta(object):

        """同理,该方法可用于使用mysql中任何已有的表,不仅是视图"""

        db_table = 'your_view' #显式指定表名,也就是你建立的视图的名字

        managed = false #默认是ture,设成false django将不会执行建表和删表 *** 作

    # 建立字段间的映射

    #  需要注意的是,必须设一个字段为主键

    #  不然django会自动创建一个id字段为主键,引发错误

百度知道越来越辣鸡了,全是答非所问的。

用if语句判断一下就可以了,比如

查找users表中是否存在email为接收到email的记录

userinfo = Usersobjectsget(email = requestPOST['email'])if userinfo: print("yes,we have this email")else: print("sorry,email is not register")

目前到django17 为止 修改model的前提是:你已经创建完model,并且已经 使用 syncdb 或 migrate 创建了相应的数据库表。 然后再 修改model,不会对数据库表产生任何修改的。 具体的东西,自己去看 Django 相应版本的文档去吧 不同版本,不太一样。

以上就是关于django怎么判断数据库的记录是否存在全部的内容,包括:django怎么判断数据库的记录是否存在、请教一个 django 数据库查询字段重命名的问题、如何独立使用django的数据库访问功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9349264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存