10.24
ORM: Python语法 sql 类 表 属性 字段 对象 表记录 一 如何创建表 在models.py: class Food(models.Model): title=models.CharField(max_length=32) 执行数据库迁移命令: 1 Python manage.py makemigrations 2 python manage.py migrate 注意:必须在settings中的INSTALLED_APPS 注册models所在的app 二 对于表记录增删改查 class Book(models.Model): nid=models.AutoField(primary_key=True) title=models.CharField(max_length=32) price=models.DecimalField(max_digits=8,decimal_places=2) # 999999.99 pub_date=models.DateTimeField() # "2012-12-12" publish=models.CharField(max_length=32) 1 添加记录 # 方式1: book=Book(title="python",price=123,pub_date="2012-12-12",publish="人民出版社") book.save() # 方式2: book=Book.objects.create(title="python",price=123,pub_date="2012-12-12",publish="人民出版社") print(book.title) 2 查询记录 book_list=Book.objects.all() # [book1,book2,book3] book_list=Book.objects.filter(price=100) # [book1,book2,book3] 3 删除记录 Book.objects.filter(price=100).delete() 4 修改记录 Book.objects.filter(nid=edit_book_id).update(price=111) Book.objects.filter(price=111).update(publish="南京出版社") 三 图书管理系统的请求流程给1汽车、kj (1)查看书籍: 请求url :http://127.0.0.1:8000/books/ 请求方式:GET django的urls.py: path('books/', views.books,name="books"), 执行books(request): 1 查询所有书籍 2 将查询的queryset数据传入模板,render渲染出一个books页面 3 返回给浏览器 用户此时可以看到书籍的查看页面 (2) 添加书籍 请求url :http://127.0.0.1:8000/books/add/ 请求方式:GET django的urls.py: path('books/add/', views.addbook), 执行addbook(request): if GET请求: 返回给浏览器一个提交书籍的表单页面 用户此时可以看到书籍的添加页面 ################ 用户输入数据,点击提交 请求url :http://127.0.0.1:8000/books/add/ 请求方式:POST django的urls.py: path('books/add/', views.addbook), 执行addbook(request): if GET请求: 返回给浏览器一个提交书籍的表单页面 用户此时可以看到书籍的添加页面 else: 获取用户提交的数据,向数据库中添加一本书籍 返回一个重定向:/books/ ################ 浏览器接收到重定向的响应:再发请求 请求url :http://127.0.0.1:8000/books/ 请求方式:GET django的urls.py: path('books/', views.books,name="books"), 执行books(request): 1 查询所有书籍 (此时查询的书籍包含刚刚添加的书籍) 2 将查询的queryset数据传入模板,render渲染出一个books页面 3 返回给浏览器 用户此时可以看到书籍的查看页面 (3) 删除请求 请求url :http://127.0.0.1:8000/books/delete/5 请求方式:GET django的urls.py: re_path('books/delete/(\d+)', views.delbook,name="books"), 执行delbook(request,5): 1 查询主键为5的书籍删除 2 返回一个重定向:/books/ ################ 浏览器接收到重定向的响应:再发请求 请求url :http://127.0.0.1:8000/books/ 请求方式:GET django的urls.py: path('books/', views.books,name="books"), 执行books(request): 1 查询所有书籍 (此时查询的书籍没有刚刚删除的书籍) 2 将查询的queryset数据传入模板,render渲染出一个books页面 3 返回给浏览器 用户此时可以看到书籍的查看页面 单表查询: 查询API: queryset (1) all() : 调用者:objects管理器 返回queryset (2) filter() :调用者:objects管理器 返回queryset (3) get方法():调用者:objects管理器 返回查询到model对象 (注意:查询结果有且只有一个才执行) (4) first(),last()方法:调用者:queryset 返回model对象 (5) exclude():调用者:objects管理器 返回queryset (6) order_by():由queryset对象调用,返回值是queryset (7) count :数数 :由queryset对象调用 返回int (8) reverse():由queryset对象调用,返回值是queryset (9) exists(): 由queryset对象调用 返回值布尔值 (10)values()方法: 由queryset对象调用,返回值是queryset (11)values_list():由queryset对象调用,返回值是queryset (12)distinct(): 由queryset对象调用,返回值是queryset 模糊查询(双下划线) Book.objects.filter(price__in=[100,200,300]) Book.objects.filter(price__gt=100) Book.objects.filter(price__lt=100) Book.objects.filter(price__range=[100,200]) Book.objects.filter(title__contains="python") Book.objects.filter(title__icontains="python") Book.objects.filter(title__startswith="py") Book.objects.filter(pub_date__year=2012) https://www.cnblogs.com/yuanchenqi/articles/8963244.html
https://www.cnblogs.com/sss4/p/7070942.html orm一片不错的博客 链接