• django-orm查询操作


    django-orm查询操作

    In [19]: from bookstore.models import Book
    
    In [20]: a1=Book.objects.all()
    
    In [21]: a1
    Out[21]: <QuerySet [<Book: Book object (1)>, <Book: Book object (2)>, <Book: Book object (3)>, <Book: Book object (4)>, <Book: Book object (5)>]>
    
    In [22]: #类数组
    
    In [23]: for book in a1:
        ...:     print(book.title)
        ...:
    python
    Django
    JQury
    Linux
    HTML5
    

    进一步显示book对象

    In [1]: from bookstore.models import Book
    
    In [2]: b1=Book.objects.all()
    
    In [3]: b1
    Out[3]: <QuerySet [<Book: python_清华大学出版社_20.00_25.00>, <Book: Django_清华大学出版社_70.00_75.00>, <Book: JQury_机械工业出版社_90.00_85.00>, <Book: Linux_机械工业出版社_80.00_65.00>, <Book: HTML5_清华大学出版社_90.00_105.00>]>
    

    按字段取数据

    In [3]: b1
    Out[3]: <QuerySet [<Book: python_清华大学出版社_20.00_25.00>, <Book: Django_清华大学出版社_70.00_75.00>, <Book: JQury_机械工业出版社_90.00_85.00>, <Book: Linux_机械工业出版社_80.00_65.00>, <Book: HTML5_清华大学出版社_90.00_105.00>]>
    
    In [5]: b1.values('title')
    Out[5]: <QuerySet [{'title': 'Django'}, {'title': 'HTML5'}, {'title': 'JQury'}, {'title': 'Linux'}, {'title': 'python'}]>
    
    In [6]: b2=Book.objects.values('title','pub')
    
    In [7]: b2
    Out[7]: <QuerySet [{'title': 'python', 'pub': '清华大学出版社'}, {'title': 'Django', 'pub': '清华大学出版社'}, {'title': 'JQury', 'pub': '机械工业出版社'}, {'title': 'Linux', 'pub': '机械工业出版社'}, {'title': 'HTML5', 'pub': '清华大学出版社'}]>
    In [9]: for i in b2:
       ...:     print(i['title'],i['pub'])
       ...:
       ...:
    python 清华大学出版社
    Django 清华大学出版社
    JQury 机械工业出版社
    Linux 机械工业出版社
    HTML5 清华大学出版社
    
    

    In [10]: b3=Book.objects.values_list('title')
    
    In [11]: b3
    Out[11]: <QuerySet [('Django',), ('HTML5',), ('JQury',), ('Linux',), ('python',)]>
    
    In [12]: for i in b3:
        ...:     print(i)
        ...:
    ('Django',)
    ('HTML5',)
    ('JQury',)
    ('Linux',)
    ('python',)
    
    In [13]: b4=Book.objects.values_list('title','pub')
    
    In [14]: for i in b4:
        ...:     print(i)
        ...:
    ('python', '清华大学出版社')
    ('Django', '清华大学出版社')
    ('JQury', '机械工业出版社')
    ('Linux', '机械工业出版社')
    ('HTML5', '清华大学出版社')
    

    根据字段排序

    In [15]: b5=Book.objects.order_by('-price')
    
    In [16]: b5
    Out[16]: <QuerySet [<Book: JQury_机械工业出版社_90.00_85.00>, <Book: HTML5_清华大学出版社_90.00_105.00>, <Book: Linux_机械工业出版社_80.00_65.00>, <Book: Django_清华大学出版社_70.00_75.00>, <Book: python_清华大学出版社_20.00_25.00>]>
    

    针对Queryset对象灵活使用vaules、values_list、order_by

    In [17]: b6=Book.objects.values('title').order_by('-price')
    
    In [18]: b6
    Out[18]: <QuerySet [{'title': 'JQury'}, {'title': 'HTML5'}, {'title': 'Linux'}, {'title': 'Django'}, {'title': 'python'}]>
    
    

    queryset query属性获取sql语句

    
    In [19]: b6.query
    Out[19]: <django.db.models.sql.query.Query at 0x1ded56f3cd0>
    
    In [20]: print(b6.query)
    SELECT `Book`.`title` FROM `Book` ORDER BY `Book`.`price` DESC
    

    views.py

    def all_book(request):
        all_book=Book.objects.all()
        return render(request,'bookstore/all_book.html',locals())
    

    all_book.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>显示所有书籍</title>
    </head>
    <body>
        <table border="1">
            <tr>
                <th>id</th>
                <th>title</th>
                <th>pu</th>
                <th>price</th>
                <th>market_price</th>
                <th>op</th>
            </tr>
            {%  for info in  all_book %}
            <tr>           
                 <td>{{info.id}}</td>
                 <td>{{info.title}}</td>   
                <td>{{info.pub}}</td>
                <td>{{info.price}}</td>
    
                <td>{{info.market_price}}</td>           
                <td>
                    <a href="">更新</a>
                    <a href="">删除</a>
    
                </td>
            </tr>
            {% endfor %}
    
        </table>
    </body>
    </html>
    
    

    页面显示

    image

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>显示所有书籍</title>
    </head>
    <body>
        <table border="1">
            <tr>
                <th>id</th>
                <th>title</th>
                <th>pu</th>
                <th>price</th>
                <th>market_price</th>
                <th>op</th>
            </tr>
            
            <tr>
                
                 <td>1</td>
                 <td>python</td>   
                <td>清华大学出版社</td>
                <td>20.00</td>
    
                <td>25.00</td>
               
                <td>
                    <a href="">更新</a>
                    <a href="">删除</a>
    
                </td>
            </tr>
            
            <tr>
                
                 <td>2</td>
                 <td>Django</td>   
                <td>清华大学出版社</td>
                <td>70.00</td>
    
                <td>75.00</td>
               
                <td>
                    <a href="">更新</a>
                    <a href="">删除</a>
    
                </td>
            </tr>
            
            <tr>
                
                 <td>3</td>
                 <td>JQury</td>   
                <td>机械工业出版社</td>
                <td>90.00</td>
    
                <td>85.00</td>
               
                <td>
                    <a href="">更新</a>
                    <a href="">删除</a>
    
                </td>
            </tr>
            
            <tr>
                
                 <td>4</td>
                 <td>Linux</td>   
                <td>机械工业出版社</td>
                <td>80.00</td>
    
                <td>65.00</td>
               
                <td>
                    <a href="">更新</a>
                    <a href="">删除</a>
    
                </td>
            </tr>
            
            <tr>
                
                 <td>5</td>
                 <td>HTML5</td>   
                <td>清华大学出版社</td>
                <td>90.00</td>
    
                <td>105.00</td>
               
                <td>
                    <a href="">更新</a>
                    <a href="">删除</a>
    
                </td>
            </tr>
            
    
    
    
        </table>
    </body>
    </html>
    
    
  • 相关阅读:
    一对多
    订单数据模型分析
    一对一查询(2)
    一对一查询
    Statement、PreparedStatemnt、CallableStatement
    getParameter和getAttribute的区别
    SQL基础试题
    Java 泛型(Generics) 综述
    <html>
    oracle视图建主键
  • 原文地址:https://www.cnblogs.com/yescarf/p/15120109.html
Copyright © 2020-2023  润新知