Django学习笔记
文章平均质量分 87
记录django学习笔记
杨鸿儒
做自己喜欢的事。
展开
-
32.django下载文件
def file_download(request,id,file_id): file_obj = models.FileRepository.objects.filter(pk=file_id).first() res = requests.get(file_obj.file_path) data = res.iter_content() #文件分块处理 response = HttpResponse(data,content_type="application/octet原创 2020-07-15 22:13:47 · 151 阅读 · 0 评论 -
31.django离线脚本
django离线脚本:写在django项目中的脚本文件,与django项目的运行没有关系,可以对django项目做一些处理。import osimport sysimport djangobase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(base_dir) #找到脚本所在的django项目根目录添加到sys.path中,否则找不到os.environ.setdefau原创 2020-06-22 10:45:55 · 287 阅读 · 0 评论 -
30.modelform的使用
modelform是form组件的一种,比Form更加方便from django import formsclass RegForm(forms.modelform): class Meta: model = models.表名 field = [] #指定字段 field = "__all__" #全部字段 exclude = [] #...原创 2020-05-26 09:43:47 · 469 阅读 · 0 评论 -
29.form组件----(3)常用字段和参数
1.常用字段字段名作用Char(field)字符格式IntegerField(Field)数字格式DateField(BaseTemporalField)日期格式RegexField(CharField)自定义正则EmailField(CharfFeld)邮箱格式无论什么字段都要继承Field字段2.常用参数因为所有字段都继承Fie...原创 2020-05-05 22:01:57 · 243 阅读 · 0 评论 -
28.form组件----(2)验证流程
1.字段名和字段实质class LoginForm(Form): username = CharField( min_length=6, max_length=12, required=True, error_messages={ "required":"用户名不能为空", "...原创 2020-05-05 18:01:20 · 237 阅读 · 0 评论 -
27.form组件----(1)初识form组件
1.form组件的作用?我们在前端写form组件向后端提交数据,后端进行校验,form组件可以帮我们快速实现这两个需求,使开发更加方便。2.form组件的简单使用在视图函数中:class RegForm(forms.Form): name = forms.fields.CharField( label="用户名", min_length=8, ...原创 2020-04-24 17:26:58 · 265 阅读 · 0 评论 -
26.sweetalert的使用
1.介绍sweetalert是啥?sweetalert是一个前端插件,可以提供好看的弹出框2.使用1. 在将要使用sweetalert的html文件中先导入sweetalert,①使用cdn:<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>②将js代码复制到...原创 2020-04-24 15:15:23 · 588 阅读 · 0 评论 -
25.ajax初识
1.什么是ajax?使用js技术发送请求的一种方式,特点是异步、局部刷新、传输数据量小ajax的简单使用2.ajax的简单使用1.基于ajax完成两数相加<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</...原创 2020-04-23 14:43:31 · 205 阅读 · 1 评论 -
24.限制访问频率
将限制访问频率功能写在中间件的process_request方法中思路:1.获取访问ip和访问时间,并判断是否访问过2.将同一ip的访问记录记在list中,并删除距当前访问时间超过x秒的记录3.判断该ip访问次数,大于x则拒绝,否则正常流程并此次访问时间简单的代码如下:import timefrom django.utils.deprecation import Middleware...原创 2020-04-22 11:24:29 · 410 阅读 · 0 评论 -
23.中间件
什么是中间件?在django中就是一个写了特定方法的类,能在全局范围内改变django的输入和输出。位于web服务层和路由之间。自定义中间件一.定义与注册1.定义创建一个middlewares文件夹,创建一个my_middleware的py文件:from django.utils.deprecation import MiddlewareMixinclass middle1(Midd...原创 2020-04-22 11:24:01 · 251 阅读 · 0 评论 -
22.django终端打印sql语句
在settings.py文件中LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }...原创 2020-04-21 20:41:29 · 278 阅读 · 0 评论 -
21.使用python脚本调用django环境
import osif __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE","orm_test.settings") import django django.setup()原创 2020-04-21 20:41:09 · 199 阅读 · 0 评论 -
20.cookie和session
一.cookie1.什么是cookie?保存在浏览器上的由一组组键值对构成的记录用户信息的一小段文本2.cookie的使用1.set_cookie(key,value,max_age,path,domian) 设置cookie参数作用key键value值max_age超时时间path默认为"/",表示访问任何路径都带上cookie,如果写了...原创 2020-04-20 18:04:41 · 309 阅读 · 0 评论 -
19.单表的双下划线
使用单表的双下划线辅助查询,可以使查询更精准方法作用__lt小于__lte小于等于__gt大于__gte大于等于startswith以…开头(区分大小写)istartswith以…开头(不区分大小写)endswith以…结尾(区分大小写)iendswith以…结尾(不区分大小写)contains包含…(区分大小...原创 2020-04-20 18:06:04 · 148 阅读 · 0 评论 -
18.F和Q查询
1.F查询使用F可以动态的获取一个字段的值现在有一张Book表:class Book(models.Model): title = models.CharField(max_length=32,unique=True) price = models.DecimalField(max_digits=5,decimal_places=2) sale = models.In...原创 2020-04-20 15:44:09 · 223 阅读 · 0 评论 -
17.正向查询和反向查询
一.介绍如何理解正向、单向查询?有外键或多对多字段的一方查询相关联的一方叫做正向查询,否则叫反向查询。看图:二.使用以Book表和Publisher(外键关系)为例,多对多关系表类似,正向查询就不写了,直接查就好了,这里写反向查询,用publisher中的数据去查book数据1.基于对象的反向查询(借助管理对象)(1)不设置related_name字段class Book(mode...原创 2020-04-20 14:46:59 · 2805 阅读 · 0 评论 -
16.必知必会13条
1.方法作用all()QuerySet,获取所有对象filter()QuerySet,获取符合条件的对象get()object,获取符合条件的对象,如果有多个或没有会报错exclude()QuerySet,获取不符合条件的对象order_by()QuerySet,对对象列表进行排序,默认升序,字段前加-表示降序reverse()Que...原创 2020-04-18 12:02:57 · 167 阅读 · 0 评论 -
15.创建超级用户
创建超级用户后就能进入django的后台管理系统中1.启动命令:python manage.py createsuperuser2.用户注册(1)输入用户名(2)输入邮箱,直接回车跳过(3)输入密码和重复密码(输入时不会显示,密码最少为8位,不能是纯英文和纯数字)3.登录超级用户进入admin页面,输入用户名和密码后就可以登录eg:127.0.0.1/admin...原创 2020-04-17 16:13:54 · 559 阅读 · 0 评论 -
14.orm中常用字段和参数
1.字段写法作用models.AutoField()自增,要写参数primary_keymodels.CharFiedl()字符,要写参数max_lengthmodels.IntegerField()整数models.DateTimeField()日期models.BooleanField()布尔值models.TextField()...原创 2020-04-17 16:02:15 · 190 阅读 · 0 评论 -
13.url的命名和反向解析
一.介绍为什么要有url的命名和反向解析?在模板中写url路径时如果写成这样/del_publsiher/形式的"死"路径,当需要改这个路径时,引入这个路径的所有文件都需要改,我们如果给这个路径起个别名,将来通过别名引入,就是一个"活"的路径,就算路径名要改,也不会影响我们的正常使用这个跟{% load static %}{% get_static_prefix %}有异曲同工之妙,下来就直...原创 2020-04-15 20:33:09 · 203 阅读 · 0 评论 -
12.HttpRequest和Httpresposne
一.HttpRequest简介:原创 2020-04-14 16:48:04 · 573 阅读 · 0 评论 -
11.CBV
Django的视图既可以是CBV也可以是FBV,前面一直写的都是FBV,今天学习一下CBV1.CBV和FBVCBV:class based view 基于类的视图FBV:class based view 基于函数的视图2.使用先看FBV的一段代码:view.py:def add_publisher(request): err, new_name = "", "" if requ...原创 2020-04-13 15:51:57 · 130 阅读 · 0 评论 -
10.装饰器
一.初识1.引入现在有这样两个函数def func1(): print("这是func1")def func2(): print("这是func2")我想让他俩每次执行之前先打印一下时间,就是这样import timedef func1(): print("这是func1") def func2(): print("这是func2")print(time.time...原创 2020-04-13 15:28:51 · 364 阅读 · 6 评论 -
9.template零碎知识点
1.母版和继承当我们多个页面大部分代码相同时,只有少数特定的,我们可以建造母版并继承来,写自定义的block块来减少代码量比如我们现在有这样一个html,写其他网页时都想用这个模板base.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> &...原创 2020-04-12 08:51:23 · 134 阅读 · 0 评论 -
8.inclusion_tag的使用
前天学习inclusion_tag的使用,但是自己写代码的时候总是出错,直到今天才第一次运行成功,特地来写一下inclusion_tag的使用,以后出错可以看看。1.创建文件在Django的app下创建一个叫templatetags的python(名字一定要是templatetags)然后创建一个py文件,来写我们自定义的inclusion_tag2.写配置from django i...原创 2019-08-07 12:56:17 · 667 阅读 · 0 评论 -
7.filter----过滤器
一.介绍1.过滤器相当于有一个或两个参数的py函数,他的作用是修改变量的显示结果2.用法{{ vlaue|filter_name:参数 }}eg:a = 1{{ a|add:3 }} 在模板上显示为4二.基本过滤器1.default如果变量没传值,就显示default的值a = None{{ a|default:"nothing" }}结果:nothingps:...原创 2020-04-11 18:38:39 · 183 阅读 · 0 评论 -
6.模板语言
我们在写django项目时,前端难免要用到后台的数据,但前后端的语言又不通用,有了模板语言后台可以把数据交给前端进行渲染。django模板语言要记两种,变量{{ }}和标签{% %}1.变量(1)初识后端:a = 10def test(reuqest): return render(request,"test.html",{"a":a}) 前端:<p>{{ a }...原创 2020-04-10 16:19:54 · 654 阅读 · 0 评论 -
5.fontawsome的使用
1.下载下载地址:http://www.fontawesome.com.cn/get-started/下载完之后解压到django项目的static文件夹下2.寻找图标(1)进入图标库,选自己想用的图标:http://www.fontawesome.com.cn/faicons/(2)在页面源码中获取图标对应的i标签3.使用(1)在html文件中先引入fontawsome中的cs...原创 2020-04-09 17:25:11 · 573 阅读 · 0 评论 -
4.ORM操作中管理对象的获取及使用
我们在使用ORM来操作有外键和多对多关系的数据库时,免不了用到管理对象,但管理对象的获取很容易混淆,特此来记录一下以下是我们要用到的modelsclass Publisher(models.Model): pid = models.AutoField(primary_key=True) #主键 name = models.CharField(max_length=32,un...原创 2019-08-17 18:57:17 · 311 阅读 · 0 评论 -
3.app的介绍和使用
1.app是啥?为什么要有app?我们刚开始学django的时候将视图函数写在路由中,但是随着我们学习的深入,函数越来越多,多个函数集中在一个文件里,容易混乱且不好查找,app就是来解决这个问题。app是啥?我们将视图函数按照业务逻辑为例进行分类,比如我们将与书籍相关的,增删改查等函数集中起来放到一个文件夹中,这个文件夹相当于一个app。或者说我们将一个django项目看成一个大的机构,a...原创 2020-04-09 14:17:21 · 701 阅读 · 0 评论 -
2.django连接数据库
本文以msyql为例1.配置文件__init__.py#告诉django使用pymsql连接数据库import pymysqlpymysql.install_as_MySQLdb()settings.pyDATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #存储引擎 ...原创 2020-04-09 14:16:46 · 296 阅读 · 0 评论 -
1.Django的下载、项目创建和启动
1.Django的下载(1)使用命令行pip install django 下载最新版本pip install django==版本名 指定版本下载最好下载1.11版本,长期更新下载完之后添加到环境变量中,以便我们后续使用(2)使用pycharm2.查看django版本号(1)进入命令行的python解释器中import pythonprint(djang...原创 2020-04-09 14:16:17 · 154 阅读 · 0 评论