随笔分类 - django
1
摘要:背景 python 中 global 关键字可以定义一个变量为全局变量,但是仅限于在当前模块(py文件)中调用全局变量,如果在另外一个py文件中,再次使用 global x 是无法访问到的,因为在这个py模块中并没有一个叫做x的变量,于是就会报错,参数未定义。 借鉴global的思路,既然在一个文件
阅读全文
摘要:Django中间件实现操作日志 本文通过Django中间件的流程,实现操作日志记录的功能,模块化、拿来即用。 功能描述:通过中间件记录 请求时间、操作用户、请求URL、请求方法、请求IP、请求参数和响应数据、响应耗时等数据日志,而且可以自定义exclude_urls列表,访问列表中的url,不会保存
阅读全文
摘要:Django文件下载 方式一:HttpResponse 这种方式简单粗暴,适合小文件的下载,但如果这个文件非常大,这种方式会占用大量的内存,甚至导致服务器崩溃。 其原理是,HttpResponse会先读取文件到内存,然后再输出。 def file_download(request): with op
阅读全文
摘要:Contenttype组件一般使用在表结构是一种策略模式中,能够帮助我们快速的操作。 表关系 如下设计:有一张价格表,有三种不同课程类型(大课、小课、软件服务),而且每种课程(大课中的Python)因为周期(30 60 90 )的不同而价格也不同。 在django_content_type表中有我们
阅读全文
摘要:Jsonp -- JSON+Padding JS对JSONP的实现 jsonp是json用来跨域的一个东西。原理是通过script标签的跨域特性来绕过同源策略。 script标签的src属性是可以直接实现跨域的,这是标签特性,所以我们可以借助它来实现跨域。 简单实现: index.html <b
阅读全文
摘要:离线脚本可以在Linux中做定时任务执行脚本。 也能够用于Django项目中,为项目做一些其他方便的操作(脱离项目运行,右键点击运行)。 下面是在Django中往数据库添加数据的例子。 init_news.py """ 初始化动态表,在动态表中添加一些数据,方便操作 """ import os im
阅读全文
摘要:ModelForm操作 class Meta下常用参数: model = models.Book # 对应的Model中的类 fields = "__all__" # 字段,如果是__all__,就是表示列出所有的字段 exclude = None # 排除的字段 labels = None # 提
阅读全文
摘要:Form组件 在很多场景需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。 Django form组件就实现了上面所述的功能。 Form组件的主要功能: 1. 生成html标签 2. 保留原来的数据 3
阅读全文
摘要:中间件 注: 中间件中的大多数方法在返回None时表示会进入下一项事件,当返HttpResponese对象时表示此请求结果,直接返回给客户端。 中间件介绍 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。 如果你
阅读全文
摘要:Ajax Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。 AJAX 最
阅读全文
摘要:1. 装饰器 装饰器中加入funtools.wraps装饰,能够保留函数的元数据(函数名、注释) import functools def wrapper(f): @functools.wraps(f) def inner(*args,**kwargs): """ 这是inner函数 """ ret
阅读全文
摘要:基于双下划线的连表查询 from django.db import models # Create your models here. class Author(models.Model): """ 作者表 """ name=models.CharField( max_length=32) age=
阅读全文
摘要:单表常用的查询方式 models.py 图书馆管理 from django.db import models # Create your models here. class MyLibrarys(models.Model): id = models.AutoField(primary_key=Tr
阅读全文
摘要:多表查询 admin: 输入:createsuperuser,配置账户密码 admin.py文件下注册表: admin.site.register 增加 一对一: Author >AuthorDetail 方式1: 关联字段名 = 数据 方式2: 关联属性=对象(另一张表对应的model对象)
阅读全文
摘要:ORM MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称。(Object Re
阅读全文
摘要:模板渲染系统 官方文档 1. 语法 可做动态页面 字符串替换。 {{ 变量 }} 变量相关 {% 逻辑 %} 逻辑相关 2. 变量 {{ 变量名 }} 当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身。 变量的命名包括任何字母数字以及下划线 ("_")的组合。 变量名称中不能有空格或
阅读全文
摘要:View视图 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 1. 请求request对象 HttpRequest对象: 当一个页面被请求时,Dja
阅读全文
摘要:URL路由系统 URL配置 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 基本格式: from django.conf.urls
阅读全文
摘要:HTTP协议 超文本传输协议(HyperText Transfer Protocol,HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。 HTTP
阅读全文
摘要:Web框架本质 所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,我们就可以自己实现Web框架了。 请求
阅读全文
1

浙公网安备 33010602011771号