我觉得楼上的回答好像有点问题。大家可以自行验证一下我是否正确。
用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:
种办法, 自己挑一种吧第一种:
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的数据库访问功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)