django中怎么使用两个限定条件在mysql数据库中进行查询

django中怎么使用两个限定条件在mysql数据库中进行查询,第1张

可以使用逻辑关系运算符

例如:

SELECT FROM table_name

WHERE (条件1 and 条件2) 查询两个条件都符合的结果,

或者

SELECT FROM table_name

WHERE (条件1 or 条件2) 查询符合两个条件中满足任一条件的结果。

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

class ViewModel(modelsModel):

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

    class Meta(object):

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

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

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

    # 建立字段间的映射

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

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

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

如果你使用 Django 的模型表单 (model form) 生成表单,可以使用 Django 查询数据库进行筛选,以便仅显示与特定用户相关的分类。

首先,在视图函数中,查询数据库并返回与特定用户相关的分类:

from djangoshortcuts import render

from models import Category

def my_view(request):

user_categories = Categoryobjectsfilter(user=requestuser)

return render(request, 'my_templatehtml', {'categories': user_categories})

然后,在模板中,您可以在生成表单时使用该分类集:

<form method="post">

{% csrf_token %}

{{ formas_p }}

<input type="submit" value="Submit">

</form>

最后,在表单类中,您可以重写初始化方法,以仅使用用户分类:

from django import forms

from models import Table2

class Table2Form(formsModelForm):

class Meta:

model = Table2

fields = ('category',)

def __init__(self, user, args, kwargs):

super()__init__(args, kwargs)

selffields['category']queryset = Categoryobjectsfilter(user=user)

最后,在视图函数中实例化表单,并将用户传递给表单类:

from djangoshortcuts import render

from forms import Table2Form

def my_view(request):

user_categories = Categoryobjectsfilter(user=requestuser)

form = Table2Form(requestuser, instance=table2_instance)

return render(request, 'my_templatehtml', {'form': form})

先让我们回忆一下在第五章里的关于书本(book)的数据模型:

1

from djangodb import models

class Publisher(modelsModel):

name = modelsCharField(max_length=30)

address = modelsCharField(max_length=50)

city = modelsCharField(max_length=60)

state_province = modelsCharField(max_length=30)

country = modelsCharField(max_length=50)

website = modelsURLField()

def __unicode__(self):

return selfname

class Author(modelsModel):

first_name = modelsCharField(max_length=30)

last_name = modelsCharField(max_length=40)

email = modelsEmailField()

def __unicode__(self):

return u'%s %s' % (selffirst_name, selflast_name)

class Book(modelsModel):

title = modelsCharField(max_length=100)

authors = modelsManyToManyField(Author)

publisher = modelsForeignKey(Publisher)

publication_date = modelsDateField()

def __unicode__(self):

return selftitle

如我们在第5章的讲解,获取数据库对象的特定字段的值只需直接使用属性。 例如,要确定ID为50的书本的标题,我们这样做:

>>> from mysitebooksmodels import Book

>>> b = Bookobjectsget(id=50)

>>> btitle

u'The Django Book'

但是,在之前有一件我们没提及到的是表现为ForeignKey 或 ManyToManyField的关联对象字段,它们的作用稍有不同。

访问外键(Foreign Key)值

当你获取一个ForeignKey 字段时,你会得到相关的数据模型对象。 例如:

>>> b = Bookobjectsget(id=50)

>>> bpublisher

<Publisher: Apress Publishing>

>>> bpublisherwebsite

u'>

以上就是关于django中怎么使用两个限定条件在mysql数据库中进行查询全部的内容,包括:django中怎么使用两个限定条件在mysql数据库中进行查询、Django里面怎么实现数据库视图啊 就是虚拟表、django利用modelform生成表单的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存