21-Python-Django进阶补充篇】的更多相关文章

前言: 这篇博客对上篇博客django进阶作下补充. 一.效果图 前端界面较简单(丑),有两个功能: 从数据库中取出书名 eg: 新书A 在form表单输入书名,选择出版社,选择作者(多选),输入完毕后一点击创建新书submit,就在数据库创建数据 二.实现 我们先来实现第一个功能,根据数据库数据在页面打印出书名. 1. 添加url路由 url(r'^book/', views.book), 2. 在views.py定义book方法 django默认使用GET方式,即获取数据:如果想创建/修改数…
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1,基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE 创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver 0.0.0.0 python manage.py…
1. 路由部分补充 1.1 默认值 url: url(r'^index/', views.index, {'name': 'root'}), views: def index(request,name): print(name) return HttpResponse('OK') 通过上面代码可见,可以在url中指定参数的默认值. 1.2 命名空间 project.urls.py from django.conf.urls import url,include urlpatterns = [ u…
一.数据库配置 django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见https://docs.djangoproject.com/en/1.10/ref/databases/ 一.环境准备 1.创建项目 1.使用命令创建项目和应用 创建项目:django-admin startprojcet xxx 创建应用:python manage.py startapp app01 启动应用:pytho…
一.django表单系统中,所有的表单类都作为django.forms.Form的之类创建,包括ModelForm 关于django的表单系统,主要分两种: 1.基于django.forms.Form:所有表单类的父类 2.基于django.forms.ModelForm:可以和模型类绑定的Form 案例:实现添加出版社信息的功能 二.不使用Django.Form的情况 add_publisher.html <form action="" method="post&qu…
django admin 是django自带的一个后台app,提供了后台的管理功能. 基础知识点: 一.认识ModelAdmin 管理界面的定制类,如需扩展特定的model界面,需要从该类继承 二.注册model类到admin的两种方式: 1.使用register的方法 2.使用register的装饰器 三.掌握一些常用的设置技巧 list_display:指定要显示的字段 search_fields:指定搜索的字段 list_filter:指定列表过滤器 ordering:指定排序字段 fie…
一.模板的组成 HTML代码+逻辑控制代码 二.逻辑控制代码的组成 1.变量(使用双大括号来引用变量) {{ var_name }} 2.标签(tag)的使用(使用大括号和百分号的组成来表示使用tag) {% load staticfiles %} 3.过滤器(filter)的使用 {{ ship_date|date:"F j,Y" }},ship_date变量传给date过滤器,date过滤器通过使用"F j,Y"这几个参数来格式化日期数据. "|&qu…
注意:使用原生sql的方式主要目的是解决一些很复杂的sql不能用ORM的方式写出的问题. 一.extra:结果集修改器-一种提供额外查询参数的机制 二.执行原始sql并返回模型实例 三.直接执行自定义SQL:这种方式完全不依赖model,前面两种还是要依赖model 1.使用extra:查询人民邮电出版社出版并且价格大于50元的书籍 >>> Book.objects.filter(publisher__name='人民邮电出版社').extra(where=['price>50']…
接着前面的例子,举例聚集查询和分组查询例子如下: 1.查询人民邮电出版社出了多少本书 >>> Book.objects.filter(publisher__name='人民邮电出版社').count() >>> from django.db.models import * >>> Book.objects.filter(publisher__name='人民邮电出版社').aggregate(Count('title')) 2.查询陈吉出的书总价是多少…
django.db.models.query.QuerySet QuerySet特点: 1.可迭代 2.可切片 查询相关API 1.get(**kwargs):返回与所给的筛选条件相匹配的对象,返回结果有且只有一个.如果符合筛选条件的对象超过一个,就会抛出MultipleObjectsReturned异常,如果没有找到符合筛选条件的对象,就会抛出DoesNotExist异常. 2.all():查询所有结果的对象集. 3.filter(**kwargs):它包含了与所给的筛选条件相匹配的对象集.…