
Django
我是一只程序⚪
多读书,多看报
展开
-
Django的ORM数据模型增删改查
Django是一套开发成本低、迭代周期快的python web框架,而如mysql等关系数据库则是网站的必备组件,django通过设计一套python对象与数据库表的映射系统ORM,使得开发者不用写一行SQL语句就能实现极其复杂的关系数据库操作,特别是关联多张表的SQL操作。就如下图所示,ORM的功能就是将Python语句转为SQL语句,同时把SQL语句转为Python语句,实现用python...原创 2019-01-18 22:28:29 · 713 阅读 · 0 评论 -
Django内置user模型的使用
Django Auth模块自带User模型所包含字段username:用户名 email: 电子邮件 password:密码 first_name:名 last_name:姓 is_active: 是否为活跃用户。默认是True is_staff: 是否为员工。默认是False is_superuser: 是否为管理员。默认是False date_joined: 加入日期。系...原创 2019-02-28 12:45:39 · 480 阅读 · 1 评论 -
Django 不删除库进行数据库模型字段增加
1、在模型当中需要的位置添加字段2、使用Python manage.py makemigrations appname 单独同步刚刚修改的模型3、输入1选择第一项两个选项分别为:1)给刚刚设置的字段列提供一个默认值,否则将会设置为null值1) Provide a one-off default now (will be set on all existing row...原创 2019-02-13 15:43:04 · 1580 阅读 · 0 评论 -
Django 3种自定义模板标签
Django有许多内置的模板标签(template tags)比如{% if %} ,{% for cate in cate_list %}.... 如果这些模板标签不能满足您的需要,你也可以自己定义模板标签.Django提供了以下帮助函数(functions)来允许你以一种简单的方式创建自己的模板标签(template tags):filter: 过滤器 simple_tag:处...原创 2019-02-24 23:05:41 · 1108 阅读 · 0 评论 -
Django中的makemigrations和migrate
1、makemigrationspython manage.py makemigrations app1 app2在运行此代码时:其实是在app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py,但是这个改动还没有作用到数据库文件,数据库没有增加新的表。根据检测到的模型创建新的迁移。迁移的作用,更多的是将数据库的操...原创 2019-02-25 18:43:40 · 2682 阅读 · 0 评论 -
Django构建数据库缓存
由于Django构建得是动态网站,每次客户端请求都要严重依赖数据库,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存memcached 、Redis中之前缓存的内容拿到,并返回。 Django缓存的配置和应用Django中提供了6种...原创 2019-02-20 13:02:47 · 2807 阅读 · 0 评论 -
Django对数据库的聚合、分组、F和Q查询
目录1、聚合查询2、分组查询3、F查询4、Q查询1、聚合查询导入包:from django.db.models import Avg, Sum, Max, Min, Count使用方法:# 求所有书的平均价格models.Book.objects.all().aggregate(avg_price=Avg("price")) --> 字典...原创 2019-03-05 12:23:52 · 1539 阅读 · 0 评论 -
Django 查漏补缺(持续更新)
目录:常用命令:1、url传参 article/2、获取数据如果没有返回404页面3、获取主键4、url别名5、admin注册模型6、Django使用MySQL修改__init__7、admin修改8、已存在内容数据库增加新字段9、时间区域修改10、过滤器11、一对多,多对多查询12、通过get请求方式传递参数13、分页14、上一篇下一篇...原创 2019-03-23 17:24:51 · 1511 阅读 · 0 评论 -
Django 中关于ContentType的使用详解
首先举一个例子,我们在做个人博客网站的时候,会对博客的阅读量进行统计,这时候我们只需要创建一张计数表即可,计数表中有博客和阅读量两个字段:class ReadNum(models.Model): read_num = IntegerField(default = 0) blog =models.OneToOneField(Blog,on_delete=models.DO_N...原创 2019-04-07 21:03:22 · 1415 阅读 · 0 评论 -
Django初步使用Celery
Celery是Python开发分布式任务列队的处理库。可以异步分布式地异步处理任务,也可定时执行任务等等。通常我们可以在Django执行一些比较耗时的任务(例如发邮件)和后台任务(例如爬虫和更新服务器缓存)。研究发现,在Django中使用有两种方式:1)使用django-celery应用;2)直接使用Celery。1、Celery方式的选择这里Celery的中间人,我采用...转载 2019-04-08 11:49:35 · 317 阅读 · 0 评论 -
多服务器如何共享session
在现在的大型网站中,如何实现多台服务器中的session数据共享呢当使用多台服务器架设成集群之后,我们通过负载均衡的方式,同一个用户(或者ip)访问时被分配到不同的服务器上,假设在A服务器登录,如果在B服务器拿不到用户的登录信息session。这时访问到B服务器时就出现未登录情况。所以如何对于这种情况做到共享session至关重要。以下给出一些解决方案:(来源网络以及自己的一些见解)...原创 2019-04-16 11:31:11 · 1003 阅读 · 0 评论 -
Django model中的内嵌类“class Meta”详解
通过一个内嵌类 "class Meta" 给你的 model 定义元数据, 类似下面这样:class Foo(models.Model): bar = models.CharField(maxlength=30) class Meta: # ...Model 元数据就是 "不是一个字段的任何数据" -- 比如排序选项, admin 选项等等.下面...原创 2019-02-28 08:54:24 · 726 阅读 · 0 评论 -
Django框架实现可运营电商网站(二)-- 前台部分
后台和前台基础部分有大量的相似之处,所以我已经讲过的就会一带而过,有疑问可以通过查看后台博客解决疑惑(https://blog.youkuaiyun.com/weixin_39561473/article/details/86775213)1 前台模板修改这里提供一个我找的前台模板,大家也可以自己去找,每个人审美不同的,我觉得好的,大家不一定觉得。方法都是一样的。链接:https://pan.baidu...原创 2019-02-18 13:50:20 · 2537 阅读 · 1 评论 -
COOKIE与SESSION的一些理解
二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie来辨认使...原创 2019-02-22 20:58:41 · 1297 阅读 · 0 评论 -
Django框架实现快速搭建博客
搭建一个简易的博客只需要简单的几个页面:首页、博客列表页、博客内容页、还有博客添加页。页面可以直接使用模板,本次一共使用了2套模板,一个是整体页面,一个是时间轴,当然样式是千变万化的,每个人也可以根据自己的审美去编写。模板分享:https://pan.baidu.com/s/1B6E1IaFL79M2J7Y473UIrg, 一、创建项目,创建app:#创建项目django-a...原创 2019-01-25 13:19:02 · 1836 阅读 · 2 评论 -
【048】Python全栈日记-Django(二)
上期的课程当中,已经学习了Django基本的请求,基于MVC来说,学习了V和C部分,紧接着要学习的就是Django的模型部分。首先要搞明白的是数据建模。所谓的数据建模就是利用数据库语句来描述我们的业务逻辑。描述将会被分为两个部分:业务实体的描述业务关系的描述举个例子:我们现在要对班级的同学和老师进行数据建模首先,我们会考虑的是老师和同学这两个主体,所以,我...原创 2019-01-21 19:03:50 · 1444 阅读 · 1 评论 -
【049】Python全栈日记-Django(三)
上一个日记学习了如何从数据库中提取数据,今天来学习,如何获取网页上用户提交,用户输入,并将用户输入数据存入服务器中或者进行比对。 总结以下mvc就是这么一幅图,橙色的线路已经学会了,接下来研究红色的那天线路如何实现。一、Django 请求用户从网页传递数据的方式通常是将数据写在文本框中,然后通过提交按钮将数据提交,我们获取用户提交数据的方法通常使用:[1]Form表单...原创 2019-01-21 19:17:43 · 1335 阅读 · 0 评论 -
【050】Python全栈日记-Django(四)
一、Cookie1、Cookie的认识基于 Internet的各种服务系统应运而生,建立商业站点或者功能比较完善的个人站点,常常需要记录访问者的一些信息;论坛作为 Internet发展的产物之一,在 Internet 中发挥着越来越重要的作用,是用户获取、交流、传递信息的主要场所之一,论坛常常也需要记录访问者的一些基本信息(如身份识别号码、密码、用户在 Web 站点购物的方式或用户访...原创 2019-01-21 19:19:27 · 471 阅读 · 0 评论 -
【051】Python全栈日记-Django(五)
本次重要的任务就是优化之前做的学生统计登陆注册项目,并学习多表联查获取数据库信息。一、模板系统观察之前做的学生列表页和学生详情页还有首页,你会发现,图中红圈框出来的地方是完全一致的:那每个网页都是这些代码,看着非常繁琐,那...原创 2019-01-21 19:20:56 · 1310 阅读 · 0 评论 -
Django实现邮箱注册系统
今天用Django来实现简易的邮箱注册系统,一个完整的邮箱注册系统需要有数据库存储信息、视图提供邮箱验证和前端页面展示数据 一、数据建模在models.py中建立模型:邮箱验证表对于邮箱验证来说需要的字段有:验证码、邮箱和注册时间,注册时间用于验证验证码是否过期。from django.db import modelsclass EmailValid(models.Mo...原创 2019-01-27 19:42:13 · 4123 阅读 · 0 评论 -
【047】Python全栈日记-Django(一)
一、web开发思维首先来看web开发就是我们搭建一个网站,提供信息的交互。我们需要写好完整的服务端的逻辑,所以我们来认识一下web开发的核心。从某种角度来看,web开发就是将我们想要展示的数据通过HTML页面进行展示,方便用户请求。所以我们可以将web开发看成是一个搭建数据可视化展示的需求,所以,我们在开发的时候要考虑以下几个点:如何接受用户的请求如何对用户的请...原创 2019-01-18 11:34:45 · 846 阅读 · 2 评论 -
【052】Python全栈日记-Django(六)
一、Django表单类之前通过ajax get做过前端的表单验证,但是如果不管邮箱重复的提醒,继续注册,还是能注册成功的。普通表单只能做到前端验证,为了安全,我们不得不编写对应的后端验证,但是这样工作量很大。例如一些:用户名:符号开头,长度大于密码:复杂度对于邮箱重复不让注册,除了今天要学的,还有一种思路,做两个提交按钮,一个是提交,而另一个只是button,当邮箱验证...原创 2019-01-22 18:21:42 · 825 阅读 · 0 评论 -
对Ckeditor按钮数量的配置(删除操作)
我们正常直接套用的ckeditor的样式是这样的:虽让上面三行按钮看着非常炫酷,但是基本上没有几个能够用上的,那如何才能删除并不需要的按钮呢?就像csdn的富文本编辑器一样简洁:这里需要对ckeditor的配置文件进行修改,配置文件在ckeditor目录下的config.js中,但是config.js貌似是缺省的配置,需要自己额外增加配置。默认的ckeditor配置文件如下:...原创 2019-02-14 20:55:52 · 2859 阅读 · 0 评论 -
Django框架实现可运营电商网站(一)-- 后台部分
一个完整的电商网站是这样的前台:买家界面后台:卖家界面商品:卖家所有,买家购买购物车订单当然我要做的是一个个人电商网站,所以卖家就我一个,不过道理都是一样的,只不过是数据库中卖家数量是一条还是多条的问题。一、项目准备工作1、创建项目(可用pycharm,也可使用命令,这里用命令行来演示)通过cmd进入虚拟环境(详情参照django第一期)创建项目命令django-admi...原创 2019-02-15 11:13:10 · 6419 阅读 · 4 评论 -
Django 内置查询表达式
django 内置了很多查询表达式,建议过一遍 django 官方文档留个印象,了解每个表达式的作用,以后碰到相关的需求就可以快速定位到文档查询其用途:Field lookups django使用filter时为了提高查找效率,有以下几种常用方法: (1)containscontains是 精确大小写qs.filter(name__contains="e")SQL语句...原创 2019-02-15 14:47:56 · 1615 阅读 · 0 评论 -
永久token
在HTTP检查的时候,出现如下错误:401的意思代表访问由于凭据无效被拒绝,总结一下就是我们设置的token过期了,那如何设置一个永久有效的token呢?我们的token认证是通过JWT实现的,JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。JWT TOKEN组成一个JWT TOKEN为三个部分组成:JWT头JWT头部分是一个描述JWT元数据的JSON对...原创 2019-07-23 09:40:30 · 4851 阅读 · 1 评论