Django笔记
文章平均质量分 85
课程链接 https://www.bilibili.com/video/BV1vK4y1o7jH
Suyuoa
这个作者很懒,什么都没留下…
展开
-
附录一 windows上安装mysql
首先我们进入这个地址MySQL :: MySQL Downloads然后我们点击这个然后我们点击这个然后我们点这个这里上面的是在线安装,下面的是离线安装,我们选离线的就好然后这些随便填一填,之后点submit form之后就开始下载了,下载结束后会得到这样一个文件我们双击之后会出现这个界面,第一个是默认安装,第二个是只有服务端,第三个只有客户端,第四个全部安装,第五个自定义安装,这里我们直接选择全部安装,然后按next这里有可能会出一个依赖的错误,点击n..原创 2022-03-06 08:16:57 · 664 阅读 · 0 评论 -
MySQL Workbench基本用法
MySQL Workbench相当于SQL语言的解释器。原创 2023-01-03 09:59:02 · 16518 阅读 · 12 评论 -
31.项目部署
自定义错误码页面一定要将settings.py中的debug改为False我们现在的404是这样的感觉不是很好看,我们可以自己搞一个html,放在模板层中,然后将其命名为404.html重新启动服务后发现已经换成了我们自定义的页面除了404之外,400,403,500都可以定制,但我没试过。原创 2023-01-02 09:38:55 · 2966 阅读 · 1 评论 -
附录四-django疑难杂症
如果不加入跨域,在前端使用Ajax进行请求会出现这样的问题。首先我们安装 django-cors-headers。然后在settings.py中做如下配置。这样就不会有跨域问题了。原创 2022-10-25 17:27:36 · 122 阅读 · 0 评论 -
附录三 虚拟机的使用
之前使用的VMware15会出现蓝屏的情况(下面有的时候会出现VMware15的截图,15与16的用法类似),下面使用的虚拟机软件是VMware 16,软件可以在这个链接中搞到。到这一步我们发现下面应该有确定之类的东西,但是我们看不到,这个时候你按住win键,然后拖动系统安装页面的空白处就可以给窗口托上去,然后点击一次后退。要解决这个问题,我们需要重启计算机,然后进入bios,我当前是华硕(asus)的主板,开机后不停按F2就可以进入bios。进入官网后,点击Download,然后点击22.04 LTS。原创 2022-10-23 06:59:39 · 365 阅读 · 0 评论 -
附录二 windows上直接安装uwsgi(不可行)
在linux输入后就可成功安装,在windows中会出现 AttributeError: module 'os' has no attribute 'uname' 的错误。错误的原因是windows的os没有uname()方法,所以我们将所有的os.uname()改为platform.uname()之后我将MinGW的所有基础的东西都装上了,发现在安装目录下的include中并没有net这个文件夹。点击前面的条目前的方块然后点击Mark for installation可以将其勾选上。原创 2022-10-23 06:52:18 · 3754 阅读 · 4 评论 -
30.django发送邮件
SMTP协议是推送(从服务端到客户端)协议,SMTM的全称是Simple Main Transfer Protocol(简单邮件传输协议),这个协议的服务一般在25号端口。原创 2022-10-07 12:32:47 · 2242 阅读 · 0 评论 -
29.文件上传
存在固定的位置,如果在前端界面就可以通过数据库拿到具体是哪个文件,然后把文件展示出来,如果仅仅想要获取,与static文件使用方式相同,访问media加具体文件名就可以找到了。django把用户上传的文件称为media资源,MEDIA_URL是你访问那个路由可以得到media资源,MEDIA_ROOT是把media资源放在哪。方案1会出现文件名重名的问题,具体怎么解决看需求,可以不以file.name的名称存入,比如你可以用 用户名_file.name的命名方式,这个看需求。原创 2022-10-06 07:41:34 · 561 阅读 · 0 评论 -
28.内建用户系统
django自带了一个用户表,这个用户表是admin后台用的用户表,名称为auth_user我们看一下有什么字段字段的意思如下。原创 2022-10-06 07:16:34 · 890 阅读 · 1 评论 -
27. 生成CSV文件
CSV(Comma-Separated Values)文件中文件字符分隔值,CSV文件以纯文本形式存储表格数据(数字和文本),可以被常见制表工具(excel等)直接读取。原创 2022-10-01 07:24:51 · 7103 阅读 · 0 评论 -
26.分页
分页器对象负责分页数据整体的管理,使用django.core.paginator中的构造函数Paginator实例化对象,Paginator有两个阐述,第一个参数是所有要分页的数据,第二个参数是每页显示多少个数据。我们在例子中使用到了number属性来判断get拿到的page信息,是否是当前页,如果是当前页,那么拿到的page就不会是一个链接,而是一个文字。如果拿到的页数是无效值,比如你只分了三页,你给非[1,2,3]的值,就会抛出EmptyPage的错误。用了很多的方法与属性,我们先看效果,后面再讲。原创 2022-09-18 09:42:57 · 358 阅读 · 0 评论 -
25.中间件
一般我们会在项目目录下创建一个名为middleware的Python Package来放置自定义中间件先创建一个文件夹名为middleware再创建一个__init__.py也是一样的之后我们在middleware中再新建一个py文件,我命名为test,在test中我们先简单写一下process_response与process_template_response方法一定要返回一个response对象,不然请求就没有响应了,会报错。原创 2022-09-17 06:59:46 · 453 阅读 · 0 评论 -
24.缓存
缓存(cache)是一类可以更快的读取数据的介质统称,也指其他可以加快数据读取的存储方式。一般用来存储临时数据,常用介质是读取速度很快的内存。对于低频变动的页面可以考虑使用缓存技术,减少实际渲染次数,渲染次数少了后,用户得到的响应就会更快有两个情况用缓存比较常见,一个是视图的渲染,你的页面比较复杂,元素比较多,加载比较慢,这个时候可以先把页面放在缓存中,这样在用户第二次访问的时候就快了。原创 2022-09-04 08:20:03 · 1122 阅读 · 0 评论 -
23. 云笔记项目
项目视频地址P31-P36需求是这样的我们简单分析一下,首先任意网站得有一个主页,主页的内容在后期修改会很频繁,所以主页要单独做一个应用,其余就是用户做一个应用,笔记做一个应用,用户与笔记各自给一个数据表,然后使用外键将两个数据表联系起来。...原创 2022-08-14 09:00:04 · 460 阅读 · 0 评论 -
22.session
session存储在服务器中,安全性比cookie高。cookie由于存储在用户那里,所以cookie是可以被修改的。如果使用了session,那么每一个会话在服务器中都会占一个空间存储其独有的一些信息。由于空间问题,我们不能将所以会话信息都用session处理服务端会返回(响应)给客户端sessionID,客户端向sessionID指定的空间存储内容浏览器利用cookie来处理sessionID,也就是我们之前看到的这个每一次请求会把存储的sessionid带给服务端使用session前需要先检查一下配置原创 2022-07-07 21:28:36 · 1611 阅读 · 0 评论 -
21.cookie
从访问一个网站到关闭浏览器的过程我们称为一次web会话。cookies与seesion是用来记录会话中的一些信息的,从而使下一次请求得到与上次不同的响应。比如说访问一个网站你登录过与没登录过有时会给返回不同的网页 cookies会客户端浏览器的存储空间中,chrome可以在Application中的Cookies查看cookies每一行代表一条数据,cookie有下面几个特点目录1 存储cookie set_cookie()2 修改cookie set_cookie()3 获取cookie reque原创 2022-07-07 21:22:17 · 133 阅读 · 0 评论 -
20.关系映射
关系映射依然属于ORM的内容,我们先了解三个映射的概念一对一映射 一个身份证对应一个人 一对多映射 一个班里有多个学生 多对多映射 一个老师教多个学生,一个学生被多个老师教,总结就是 多个老师教多个学生在数据库层面体现在 所有的信息不会都放在一张表上,而是姓名放一个表,年龄放一个表,然后通过某些信息进行映射,最后搞一张表,把所有信息映射到一起目录1一对一映射1.1创建映射表1.2创建数据1.3正向查询1.4反向查询2一对多映射2.1创建映......原创 2022-05-15 11:33:43 · 1034 阅读 · 0 评论 -
19.admin后台管理
admin后台管理是管理数据库的目录1创建超级用户2进入admin管理后台3查看站点4用户与组5添加组6添加用户7注册数据表8添加数据9删改数据10修改数据表界面10.1表头 list_display10.2修改链接 list_display_links10.3过滤器 list_filter10.4搜索框 search_fields10.5列表页可修改项 list_editable...原创 2022-05-03 07:31:19 · 2163 阅读 · 1 评论 -
18.聚合查询和原生数据库语句操作
1 聚合查询聚合查询是统计性的查询,比如求某一个字段所有值的平均数,某一个字段的总数这种聚合查询分整表查询与分组查询。整表查询是对表中所有数据进行查询。分组查询是先根据其他字段进行分组。比如我现在表中有中国作者和外国作者,我现在想求书的平均价格,如果整表查询就是所有书的价格,如果分组查询就可以将中国作者平均价格与外国作者平均价格分开我们下面依然使用这个数据表做例子1.1 聚合函数输入 from django.db.models import * 导入聚合函数这里可以写 f原创 2022-04-23 07:11:53 · 1445 阅读 · 0 评论 -
17.F对象与Q对象
F对象与Q对象也是ORM中的内容目录1F对象1.1操作列值1.2并发计数1.3比较列值2Q对象2.1逻辑或 |2.2逻辑非 ~2.3逻辑与 &1F对象F对象是 指定范围内 一个字段(列)的全部内容对象,语法是这样的1.1操作列值上面我们没有指定范围,下面我们指定一个范围,比如说我们现在要选表中的所有retail_price并让其都加10元我们发现每一行都加了10元如果不使用F对象,...原创 2022-04-10 09:45:57 · 926 阅读 · 0 评论 -
16.删除数据
删除数据的方法与更新数据的方法差不多,更新是先查后更新,删除是先查后删除目录1 单个数据删除2多个数据删除3伪删除4 制作删除链接4.1添加数据4.2加入筛选4.3添加删除链接4.4添加路由4.5添加删除视图4.6效果1 单个数据删除步骤是这样的查找一个数据对象 使用delete方法实现删除我们做一个例子看一下,先找后删,delete()会返回删除的数据个数这个时候我们再看一下数据发现id为1的内容......原创 2022-04-10 09:41:27 · 2393 阅读 · 0 评论 -
15.更新数据
目录1更新单个数据2批量更新数据3制作更新链接1更新单个数据大致的步骤是这样的通过get查询数据,拿到要改的对象 通过 对象.属性 方式修改数据(创建数据的第二个方法) 通过 对象.save()保存数据我们现在改一下 id为1 的书的 price为25(之前是20)首先我们拿到这个书的对象然后改最后存刷新页面后我们发现变为了252批量更新数据大致步骤是这样的通过查询的方式,拿到多个数据的一个总对象(多个数据会返...原创 2022-04-04 08:21:10 · 237 阅读 · 1 评论 -
14.查询数据
查询数据也是通过上面的objects对象进行操作,我们依然在shell中操作,常用的有下面几个方法目录1 查询所有数据 all()2 查询指定字段2.1返回对象中的元素为字典 values()2.2返回对象中的元素为元组 values_list()3排序查询 order_by()4QuerySet的组合使用5查看mysql语句 query6查询数据配合模版层7条件查询7.1条件内的所有数据 filter()7.2条件外的所有......原创 2022-04-04 08:14:47 · 310 阅读 · 0 评论 -
13.Django shell与创建数据
数据库的基本操作是CRUD,增加(Create),读取(Read),更新(Update),删除(Delete),就是增删改查我们核心是对模型类(我们当前是login_content)中的管理器对象(object,这个类的名称是固定的)进行操作如果我们想用mysql的语句来操作的话,我们可以使用pymysql目录1Django shell2创建数据2.1object.create()2.2实例化后赋值,之后保存2.3创建数据练习1Django shel.........原创 2022-03-26 08:36:02 · 603 阅读 · 0 评论 -
12.字段选项
像default这种就叫字段选项,我们这里统一看一下1主键 primary_key默认值为False,可以将其设置为True,设置为True后该字段会成为主键,如果一个表中有一个主键,那么它就不会再创建id作为主键了我们现在设置user_name为主键此时我们发现id那个字段就没有了,而且user_name的Key为PRI2字段管理后台中是否为空 blank这个是在admin后台中使用的,可以将其设置为True,设置为True后,字段可以为空。如果是False,字段就...原创 2022-03-13 08:45:11 · 560 阅读 · 0 评论 -
11.字段类型
上一章我们使用了字符串与数字类型的数据,下面我们统一介绍一下常用的字段类型在下面创建字段的时候,最开始的中文都是不必要的,我们可给可不给1 布尔类型 BooleanField()在数据库中的名字为tinyint(1),在python中使用True或False表示值,在数据库中用1或0表示值我们创建一个看一下生成中间文件和数据库迁移我就省略了,我们直接看数据库的内容2字符串类型 CharField()在数据库中类型为varchar,必填属性是max_length这个..原创 2022-03-13 08:41:55 · 4742 阅读 · 0 评论 -
10.模型层与ORM
模型层是与数据库交互信息的,我们先搞个mysql安装之后,我们在环境中中安装 mysqlclient目录1 创建数据库2ORM框架3创建数据4数据库迁移4.1生成中间文件4.2迁移到数据库5修改数据库5.1加入类属性5.2生成中间文件5.3数据库迁移5.4查看数据库内容5.5中间文件问题6Meta类1 创建数据库首先我们在这里打开mysql的终端打开后,输入密码会变成这样输.........原创 2022-03-13 08:36:58 · 1845 阅读 · 0 评论 -
9.Django应用及分布式路由
目录1应用1.1创建应用文件夹1.2配置应用文件夹2分布式路由2.1在应用中创建urls.py2.2主路由中调用include函数3在应用中使用模版1应用django中的应用相当于flask中的蓝图,一个应用中可以有自己的路由,视图,模版,模型,但是一个应用不能独立运行,使用应用的目的是方便继承1.1创建应用文件夹使用 python manage.py startapp [应用名称] 创建应用文件夹,我们现在创建一个名为logi...原创 2022-02-19 08:28:44 · 429 阅读 · 0 评论 -
8.静态文件
像图片,css,js,音频,视频这些就是静态文件目录1 静态文件的配置2访问静态文件3在模版中使用静态文件1 静态文件的配置静态文件的配置在setting.py的这里这个是创建项目后就有的默认值,可以改但是没有必要之后我们要加入STATICFILES_DIRS这个变量,这个是放静态文件的存储路径的,我们这样写可以有多个,在这里我们只使用一个然后我们在项目路径下创建文件夹static,用于存放静态文件在static目录下我们可以根据静态文件不同的类...原创 2022-02-13 08:21:49 · 998 阅读 · 0 评论 -
7.url反向解析
目录1相对地址与绝对地址2url的反向解析2.1在模版中使用2.2在视图中使用1相对地址与绝对地址我们先回忆一下之前学习中,使用url的几个地方我们在写url的使用有这样几种写法绝对地址,如:https://127.0.0.1:8000/page写绝对地址的时候不要忘了写协议 带斜杠的相对地址 /page 这样它会访问到端口加/page,与我上一个浏览的页面没有关系,如果我的IP和端口是127.0.0.1:8000,那么它无论怎么操作就会访问127...原创 2022-02-07 10:18:32 · 1329 阅读 · 0 评论 -
6.Django设计模式及模版层
目录1Django设计模式1.1MVC模式1.2MTV模式2模版层2.1模版配置2.2加载模版2.2.1方案一 loader2.2.2方案二 直接render2.3用字典传递信息2.4模版标签2.4.1if标签2.4.2for标签2.5模版过滤器2.5.1字符串全部变为小写 lower2.5.2字符串全变为大写 upper2.5.3改变数值 add:'n'2.5.4不让字符......原创 2022-02-07 10:11:50 · 1453 阅读 · 0 评论 -
5.GET与POST
GET与POST是http协议中最常用的请求方式,无论哪种请求方式都是由视图接收请求如果当我们的需求中存在get与post两者,那么我们就要在视图中做判断,像这样我们现在代码中创建路由和视图目录1GET请求2POST请求1GET请求GET请求一般出现在下面这三种情况下浏览器地址栏输入URL,回车之后会发出GET请求 a href="地址?参数=值&参数=值" 前面这个是个a标签(超链接) form表单中的method为get如果在get请...原创 2022-02-01 16:27:50 · 538 阅读 · 0 评论 -
4.请求与响应
目录1请求2响应1请求http的请求一般分下面几个部分起始行,起始行中主要有下面几个信息 请求方法(get,post等) 请求的哪一个路由 此次http请求的协议号 headers(请求头),都是一个键对应一个值,包含多种信息 body(请求体),请求体是客户端给服务端发送的信息,比如登录界面,账户与密码就属于请求体在http1.0中一般是GET,POST,HEAD,在http1.1中新增了OPTIONS,PUT,DELETE,TRACE,CONNECT...原创 2022-01-31 22:25:34 · 1890 阅读 · 0 评论 -
3.视图与路由
在Django中,我们一遍将视图代码放在项目同名文件夹下的views.py中,views.py需要我们自行创建,路由我们放在项目同名文件夹下的urls.py中,urls.py在创建项目时就已经自动创建完毕url(Uniform Resource Locator)(统一资源定位符)俗称地址,结构是下面这个样子的,中括号中的内容有时会省略protocol 协议,https(密文)比http(明文)更安全,file:///是本地计算机上的文件 hostname 域名或IP port 端口,浏览器默原创 2022-01-31 22:16:51 · 1143 阅读 · 0 评论 -
2.配置文件 setting.py
在Django中,配置文件为项目同名文件夹下的setting.py,我们在setting.py中进行配置配置项分为公有配置和自定义配置,无论公有或是自定义配置,他的格式都是这样的BASE_DIR = 'dfsd'变量名称必须大写,等号后面可以是字符串也可以是其他的数据类型我们此时打开setting.py看一下,打开后我们可以在最上方看到如下信息,我们可以到红框框出来的网址中查看所有公有变量信息目录1 BASE_DIR 项目路径2SECRET_KEY 密钥3DEBUG...原创 2022-01-31 22:02:30 · 2179 阅读 · 0 评论 -
1.安装Django并创建一个项目
Django功能性很强,是重型的框架,这个是Django的官网The web framework for perfectionists with deadlines | Django我们可以从这个网站搜索到Django的中文文档,网站中也有其他库的文档,有时间的时候可以看一下一译当前Django的版本更新到4.0,这个4.0并不是LTS(long-term support)(长期支持版本),在官网中的Downloads可以看到LTS的版本因此我们使用目前最新的LTS版本3.2,运行环境为..原创 2022-01-25 22:40:53 · 658 阅读 · 0 评论