阅读目录 ORM介绍 Django中的ORM ORM中的Model ORM的操作 一.ORM介绍 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. 2.ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而…
阅读目录 什么是中间件 中间件的执行流程 中间件的逻辑过程 一.什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出. 每个中间件组件都负责做一些特定的功能.但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能. 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法, Django框架会在请求的特定的时间…
一.MVC框架和MTV框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分: 模型(Model).视图(View)和控制器(Controller),具有耦合性低.重用性高.生命周期成本低等优点. MVC的实质就是用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面, 在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. 想要更详细的了解MVC模式? >> 谈谈MVC模式 Django框架…
阅读目录 安装 创建项目 运行 文件配置的说明 三个组件 一.安装(安装最新LTS版) Django官网下载页面 根据官方的图版本,我们下载1.11版本的,最好用! 有两种下载方式一种直接cmd里: pip3 install django==1.11.11  PS:说有命令不存在的童鞋可以去面壁了,环境变量的问题我们就不说了,自己去找度娘搞定 第二种就是在pycharm里装,又方便又快捷: 下载好之后,就是创建项目了! 二.创建一个django项目 下面的命令创建了一个名为"mysite&quo…
阅读目录 auth模块 User对象 认证进阶 一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    提供了用户认证,即验证用户名以及密码是否正确,一般需要username  password两个关键字参数 如果认证信息有效,会返回一个  User  对象.authenticate()会在User 对象上设置一个属性来标识后端已经认证了该用户,且该信息…
阅读目录 什么是Form组件 常用字段和插件 自定义校验的方式 补充进阶 一.什么是Form组件 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确. 如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.. Django form组件就实现了上面所述的功能. 总结一下,其实form组件的主要功能如下: 生成页面可用…
''' 自己独立写一个学员管理系统 表结构: 班级表: -id -grade_name 学生表: -id -student_name -grade 关联外键班级表 老师表: -id -teacher_name -grades (多对多 关联班级表) ''' 在写小项目之前我们先复习一下小知识: 1. form表单提交数据的注意事项: 是form不是from,必须要有method和action 所有获取用户输入的表单标签要放在form表单里面,表单标签必须要有name属性 form表单必须要有su…
阅读目录 常用字段 字段合集 自定义字段 字段参数 关系参数 多对多的关联关系的三种方式 一.常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField 一个整数类型,范围在 -2147483648 to 2147483647.  (最大十位) CharField 字符类型,必须提供max_length参数, max_length表示字符长度. DateField 日期字段,…
阅读目录 F查询和Q查询 事务 一.F查询和Q查询 1.F查询 查询前的准备 class Product(models.Model): name = models.CharField(max_length=32) price = models.DecimalField(max_digits=10, decimal_places=2) # 库存数 inventory = models.IntegerField() # 卖出数 sale = models.IntegerField() def __s…
阅读目录 如何在Django终端打印SQL语句 如何在Python脚本中调用Django环境 操作方法 单表查询之神奇的下划线 ForeignKey操作 ManyToManyField 聚合查询和分组查询 一.如何在Django终端打印SQL语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ '…
form表单的校验方法is_valid() 点开我们发现这个函数里面只有两个方法方法,最终返回True or False 我们点进.is_bound属性,里面判断传输的数据不是空和上传文件不是空 点进.errors发现这是一个方法伪装成属性,用的是内置的装饰器property, 这里有个简单的逻辑判断大家都看的懂吧,判断有没有报错的信息,没有错误信息就执行self.full_clean() 我们看看执行也看看返回的 self._errors,发现开始是空,经过self.full_clean()…
我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 1.自定义web框架 import socket sk = socket.socket() sk.bind(("127.0.0.1", 80)) sk.listen() while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"OK"…
阅读目录 什么是JSON 什么是AJAX AJAX常见的应用情景 jQery实现AJAX AJAX请求如何设置csrf_token AJAX上传文件 补充Django内置的serializers 一.什么是 JSON ? JSON 是用字符串来表示 JavaScript 对象(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 * JSON 使用 JavaScript 语法来描述数据对象,但是…
阅读目录 简述Django的View(视图) CBV和FBV Request对象和Response对象 Django组件(render,redirect)详解 一.简述Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面. 除此之外…
ps:mysqldb目前还不支持3.0python唉,最近赶了个新潮,用起了Python3.4跟Django1.6,数据库依然是互联网企业常见的MySql.悲催的是在Python2.7时代连接MySql的MySQLdb还不支持Python3.4,还好,苦苦追问G哥终于找到一款代替品,而且效果不错,这代替品就是:pymysql.下载此物然后进行安装,跟其它python第三包没任何区别,一样的安装.关于Django1.6中DATABASES的设置也是一样不用做任何修改,跟以前MySQLdb的时候一样…
开发环境搭建 Python环境安装 下载地址:https://www.python.org/downloads// Django安装 打开Windows CMD输入pip install django PyCharm IDE(社区版)安装 下载地址:https://www.jetbrains.com/pycharm/download/#section=windows 创建HelloWorld项目 通过Django的startproject命令在目录中创建项目 如下图就是通过startprojec…
解决办法1 使用PyMySQL模块,直接使用pip install pymysql即可. 参考文章:https://www.cnblogs.com/wcwnina/p/8719482.html 原文内容: python3不支持MySQLdb,可用pymysql代替.cmd安装pymysql:pip install pymysql. 在项目文件夹下的_init_.py添加如下代码即可. import pymysql pymysql.install_as_MySQLdb() 然后在Terminal中…
用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手.     概念 最近有个词儿很流行,叫做“全栈”(full stack).各大IT培训机构几乎都在宣传这一概念.告诉你只需要交1XXXX元,就可以在XX天之内把自己变成一个“全栈工程师”.有了这个称号可不得了,收入马上可以上升若干个量级,从此走向通往人生巅峰的坦途…… 醒醒,没那好事儿. 静下心来琢磨一下,XX天之内就可以学会的东西,门槛高吗?这么多人都能学会的东西,…
Django框架的安装与使用 在使用Django框架开发web应用程序时,开发阶段同样依赖wsgiref模块来实现Server的功能,我们使用Django框架是为了快速地开发application, python三大主流web框架: Django:大而全 自带的功能特别特别多 类似于航空母舰有时候,, 过于笨重 Flask: 小而精 自带的功能特别特别少 类似于游骑兵, 第三方的模块特别特别多,,,如果将flask第三方模块全部加起来 完全可以超过django,,,,比较依赖于第三方模块 Tor…
88-Ajax简介 89-Ajax的简单实现 90-基于Ajax的传递数据 91-基于Ajax的登录验证 92-基于Form表单的文件上传 93-请求头之contentType 94-Ajax传递json数据 95-基于Ajax的文件上传 96-分页器1 97-分页器2 98-分页器3 99-分页器4 100-form组件的校验功能 101-form组件的渲染标签功能1 102-form组件的渲染标签功能2 103-form组件的渲染错误信息 104-form组件的参数配置 105-form组件…
01-Django基础介绍 02-Web应用程序1 03-Web应用程序2 04-http请求协议1 05-http请求协议2 06-http协议之响应协议 07-wsgire模块1 08-wsgire模块2 09-DIY一个Web框架1 10-DIY一个Web框架2 11-DIY一个Web框架3 12-框架的简单使用 13-扩展框架关于数据库的操作 14-Django简介 15-Django的下载与基本命令 16-Django简单实例 17-静态文件配置1 18-静态文件配置2 19-路由控制…
Python测试开发中Django和Flask框架 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应用.系统应用)跟建造房子的过程一样,需要先打地基,搭好骨架,然后一块砖一块砖叠上去. 而开发一个应用呢? 同样也需要一个好的架构设计,数据库建模,然后一个模块一个模块使用代码实现. 如果开发一个软件应用不使用框架,和我们建房子时,每一块砖.每一根钢筋都需要自己生产出来本质上是一样的. 显而易见,如果在建造房子之前,每一块砖头.每一种建材,都需要我们自己去生产的话…
Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了如何在windows上安装和开发python.这篇文章需要在上一篇的基数上进行.首先确保你的windows上python可以正常运行. 在安装django之前,我们应该先安装一个esay_install 的python工具,通过该工具可以很轻松安装各种扩展的框架和package. 不用你先到第三方网…
前言 用过Django 进行开发的同学都知道,Django框架天然支持对CSRF攻击的防护,因为其内置了一个名为CsrfViewMiddleware的中间件,其基于Cookie方式的防护原理,相比基于session的方式,更适合目前前后端分离的业务场景,但美中不足的是,其生成的csrf_token在一个session周期中是不变,这对于一些特定的业务场景,显然有点遗憾. 为了弥补这个遗憾,本文介绍一种不用修改CsrfViewMiddleware中间件源码的方式,实现基于请求的csrf_token…
一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分发--->视图(CBV或FBV)---->取模板,取数据,用数据渲染模板--->返回模板的字符串---->前端页面得到数据展现页面给用户 二.WEB开发模式: 在开发Web应用中,有两种应用模式: 前后端不分离前后端分离1 前后端不分离在前后端不分离的应用模式中,前端页面看到的效果都是…
全网最热Python3入门+进阶 更快上手实际开发  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关注下面几点: 1.为了追求精简简洁牺牲了部分实用性,导致不足以达到某些工作的需要2.大部分是实战课程弱化了其他技术点的不足,无法全面了解python,但是很多都是刚接触python的(很致命)3.因为是录播课程导致某些问题不能及时去解决,没人交流(这个最烦) 所以真要把pyth…
##################    为什么使用中间件?      ####################### 先说几个需求, 1,url的白名单,url=[ "XX"],这个里面是一个用户可以访问的url,这就是一个权限的概念了, 2,登陆之后才能访问某些url,之前使用的是装饰器,一个网站可能有一两千的url,这样加装饰器就不太好,所以使用中间件是非常不错的, ##################    什么是中间件?      #####################…
###############    ORM进阶---contenttype    ################ 设计思路: """ 路飞有两种课,专题课和学位课, 专题课都是简单的内容,基础的课程模块, 学位课都是大课程,全套课程, 怎么设计价格策略的问题? 第一种设计: 价格策略表: id,价格, 期限,专题课id,学位课id 1 11 3个月 1 空 1 11 6个月 1 空 1 11 9个月 1 空 1 11 9个月 2 空 1 11 3个月 空 1 1 11 6…
这篇博客主要总结的学习Django框架中,遇到的报错如何去解决问题: 1.decimal.InvalidOperation: decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>] 在最后一行出现这样的报错: decimal.InvalidOperation: [<class 'decimal.InvalidOperation'>] 这个报错其实是数据库的数据长度超过了原本的长度 在models中定义类型是Dec…
一. (1)使用idea生成一个python项目,安装Django框架: pip install django==1.8.2 (2)初始化项目: django-admin startproject xxx //xxx为项目名称 (3)初始化应用: python manage.py startapp xxx //xxx为应用名称 (4)在settings.py中注册刚生成的应用: INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.…