
django
文章平均质量分 88
stu_xujin
在校大学生
展开
-
django集成markdown编辑器并实现代码高亮显示
使用django-mdeditorgitgub的地址:https://github.com/pylixm/django-mdeditor安装pip install django-mdeditor在项目settings.py文件中的INSTALLED_APPS中添加 ‘mdeditor’INSTALLED_APPS = [ 'django.contrib.admin',...原创 2019-06-12 20:47:52 · 2659 阅读 · 1 评论 -
Django中用表单验证前端的数据并进行存储到数据库中
我们要想使django中的表单验证前端传入的数据是否正确,我们需要用到Django中的forms。常用的Field:使用Field可以是对数据验证的第一步。你期望这个提交上来的数据是什么类型,那么就使用什么类型的Field。1. CharField:用来接收文本。参数:max_length:这个字段值的最大长度。min_length:这个字段值的最小长度。required:如果没...原创 2018-11-16 17:19:26 · 9020 阅读 · 0 评论 -
Django中错误处理页面
什么叫错误处理比如别人在访问我们的网页时,发送了一个不存在的url,那么我们会返回一个404错误的页面。当然除了404错误还有其他的错误。就像慕课网,简书等网站,当我们输入不存在的url时,就会返回一个后台已经定义好的模板页面。常用的错误码:404:服务器没有指定的url。403:没有权限访问相关的数据。405:请求的method错误。400:bad request,请求的参数错误...原创 2018-11-15 18:29:00 · 2332 阅读 · 2 评论 -
Django 中类视图详解
在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图。使用类视图可以使用类的一些特性,比如继承等。View视图:django.views.generic.base.View是主要的类视图,所有的类视图都是继承自他。如果我们写自己的类视图,也可以继承自他。然后再根据当前请求的method,来实现不同的方法。例如:这个视图只能使用get的方式来请求,那么就可以在这个类中定义ge...原创 2018-11-15 13:08:25 · 7475 阅读 · 0 评论 -
Django中聚合函数,F表达式和Q表达式详解
学习聚合函数的准备工作新建一个项目,在新建一个app,名字随意,然后在app中的models中定义几个模型:from django.db import models# Create your models here.class Author(models.Model): """作者模型""" name = models.CharField(max_length=100)..原创 2018-11-05 22:07:58 · 1757 阅读 · 0 评论 -
Django中生成和下载csv文件
有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来。生成小的CSV文件:def index(request): response = HttpResponse(content_type='text/csv') # attachment 代表这个csv文件作为一个附件的形式下载 # filename='abc.csv' 指定下载...原创 2018-11-13 13:17:53 · 3429 阅读 · 0 评论 -
Django 中HttpResponse对象
Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个HttpRequest对象传给视图函数。那么视图函数在处理完相关的逻辑后,也需要返回一个响应给浏览器。而这个响应,我们必须返回HttpResponseBase或者他的子类的对象。而HttpResponse则是HttpResponseBase用得最多的子类。那么接下来就来介绍一下HttpResponse及其子类。常用属...原创 2018-11-12 23:47:59 · 18581 阅读 · 0 评论 -
Django中的查询操作
查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在ORM层面,这些查询条件都是使用field+__+condition的方式来使用的。以下将那些常用的查询条件来一一解释。准备工作:新建一个项目,配置settings文件连接至mysql数据库,新建一个front的app,将ap...原创 2018-11-02 18:40:07 · 3221 阅读 · 0 评论 -
Django中QuerySet对象(模型.objects)的常用方法
准备工作:新建一个项目,在项目中新家一个app,名字自取。将app添加值settings.py中,然后配置settings连接数据库。在app中的models中新建模型:from django.db import models# Create your models here.class Author(models.Model): """作者模型""" name = m...原创 2018-11-06 20:34:29 · 10983 阅读 · 4 评论 -
Django中外键使用详解
在写项目的过程中我们不可避免的会使用到外键这个东西,那么Django中是怎样来使用外键的呢?了解外键在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是InnoDB引擎,是支持外键约束的。外键的存在使得ORM框架在处理表关系的时候异常的强大。MySQL数据库默认使用的也是InnoDB引擎。使用外键新建一个项目,创建一个article的app,添加至sett...原创 2018-10-31 00:21:00 · 48454 阅读 · 3 评论 -
Django中WSGIRequest(HttpRequest)对象常用属性和方法
Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数。也就是我们经常看到的request参数。在这个对象上我们可以找到客户端上传上来的所有信息。这个对象的完整路径是django.core.handlers.wsgi.WSGIRequest。WSGIRequest对象常用属性:WSGIReques...原创 2018-11-12 21:16:44 · 12512 阅读 · 1 评论 -
Django文件上传和图片上传
文件上传:文件上传是网站开发中非常常见的功能。接下来就将详细讲述如何在Django中实现文件的上传功能。前端HTML代码实现:在前端中,我们需要填入一个form标签,然后在这个form标签中指定enctype=“multipart/form-data”,不然就不能上传文件。在form标签中添加一个input标签,然后指定input标签的name(即上传文件我们想要它显示的名字),以及ty...原创 2018-11-20 14:59:45 · 4352 阅读 · 1 评论 -
Django编写自定义manage命令
我们再使用Django写项目的时候,不可避免的我们会使用到一些manage命令,如django-admin startproject,python manage.py runserver …等命令,然后这些命令就能完成相应的事情。但有时候Django自带的这些命令也不能满足我们的需求,我们就可以自己编写实现自己的一些需求的命令了。例如:我们实现一个createuser的命令,...原创 2019-03-01 20:11:25 · 1480 阅读 · 1 评论 -
Django中内置的User模型
User模型User模型是这个框架的核心部分。他的完整的路径是在django.contrib.auth.models.User。字段内置的User模型拥有以下的字段:username: 用户名。150个字符以内。可以包含数字和英文字符,以及_、@、+、.和-字符。不能为空,且必须唯一!first_name:歪果仁的first_name,在30个字符以内。可以为空。last_name:...原创 2018-12-20 10:45:28 · 19998 阅读 · 1 评论 -
Django中的权限和分组管理
权限Django中内置了权限的功能。他的权限都是针对表或者说是模型级别的。比如对某个模型上的数据是否可以进行增删改查操作。他不能针对数据级别的,比如对某个表中的某条数据能否进行增删改查操作(如果要实现数据级别的,考虑使用django-guardian)。创建完一个模型后,针对这个模型默认就有四种权限,分别是增/删/改/查。可以在执行完migrate命令后,查看数据库中的auth_permissi...原创 2018-12-27 15:05:18 · 7034 阅读 · 1 评论 -
Django中信号的用法
Django包含一个“信号的分发器”,用于在框架执行操作时解耦。就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者Django内置的信号model中的信号:odel signals pre_init # django的model执行其构造方法前,自动触发 post_init # djang...原创 2018-12-20 10:22:32 · 754 阅读 · 0 评论 -
python3.6、Django>=2安装xadmin==2.0.1
这篇博客主要讲一下xadmin库的下载安装和遇到的各种问题。。。。。。首先,我使用的时python3.6、Django==2.1.3,所以xadmin的版本为2.0的版本才比较合适。首先先给出xadmin==2.0.1的资源。xadmin==2.0.11.最基本的,命令行中输入命令安装因为我的是python3.6,所以使用pip install xadmin或者pip insta...原创 2018-11-28 14:41:51 · 6967 阅读 · 0 评论 -
Django中的中间件详解
什么是中间件中间件是在request和response处理过程中的一个插件。比如在request到达视图函数之前,我们可以使用中间件来做一些相关的事情,比如可以判断当前这个用户有没有登录,如果登录了,就绑定一个user对象到request上。也可以在response到达浏览器之前,做一些相关的处理,比如想要统一在response上设置一些cookie信息等。创建一个自定义的中间件中间件所处的...原创 2018-12-05 20:08:41 · 733 阅读 · 0 评论 -
Django上下文处理器详解
什么是上下文处理器上下文处理器是可以返回一些数据,在全局模板中都可以使用。比如登录后的用户信息,在很多页面中都需要使用,那么我们可以放在上下文处理器中,就没有必要在每个视图函数中都返回这个对象。自定义上下文处理器1. 上下文处理器的存放位置:你可以根据这个上下文处理器是属于哪个app,然后在这个app中创建一个文件专门用来存储上下文处理器。比如context_processors.py。或...原创 2018-12-04 18:41:48 · 3227 阅读 · 3 评论 -
Django中cookie和session操作
cookie和session的介绍:cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务...原创 2018-11-22 23:30:17 · 495 阅读 · 2 评论 -
Django中使用memcached
什么是memcached:memcached之前是danga的一个项目,最早是为LiveJournal服务的,当初设计师为了加速LiveJournal访问速度而开发的,后来被很多大型项目采用。官网是 www.danga.com 或者是 memcached.org。Memcached是一个高性能的分布式的内存对象缓存系统,全世界有不少公司采用这个缓存项目来构建大负载的网站,来分担数据库的压力。...原创 2018-11-21 23:00:51 · 1428 阅读 · 0 评论 -
Django数据库--ORM模型
随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些SQL语句的修改。写SQL时容易忽略web安全问题,给未来造成隐患。SQL注入。ORM模型介绍ORM,全...原创 2018-10-30 23:01:31 · 2617 阅读 · 0 评论 -
DTL语言学习(二){% for %}标签的使用
首先新建一个测试项目,然后新建一个for_demo的app,在app中新建一个urls.py文件,在新建一个templates的文件夹。里面新建一个for.html的文件,然后将app添加至settings.py文件中,然后配置好一切路径,在for_demo中的views.py中渲染模板for.html,这些都配置成功后,我们就可以进行{% for %}标签的学习了。在views.py中编写代码...原创 2018-10-25 00:23:42 · 1630 阅读 · 0 评论 -
Django中表关系详解
表之间的关系都是通过外键来进行关联的。而表之间的关系,无非就是三种关系:一对一、一对多(多对一)、多对多等。一对多:应用场景:比如文章和作者之间的关系。一个文章只能由一个作者编写,但是一个作者可以写多篇文章。文章和作者之间的关系就是典型的多对一的关系。作者和文章的关系就是一对多。实现方式:一对多或者多对一,都是通过ForeignKey来实现的。还是以文章和作者的案例进行讲解。创建一个u...原创 2018-11-01 17:18:48 · 1632 阅读 · 0 评论 -
DTL语言学习(四){% spaceless %}、{% autospace %}和{% verbatim %}标签
{% spaceless %}标签移除html标签中的空白字符,包括空格,换行键,tab键等。首先创建一个测试环境,相信看到看到这里的都知道怎样创建一个测试环境了。这里就不细说了。我们在html中写入一下代码:<div> <p> <a>hahahahahhahah</a> </p></div...原创 2018-10-25 18:19:13 · 1250 阅读 · 0 评论 -
url模块化,include函数的使用
urls的模块化当我们的项目越做越大时,那么url就会变得越来越多,如果都放在主’urls.py‘文件中,那么将不太好管理,因此我们可以将每个app自己的urls放到自己的app中进行管理。一般我们会在app中新建一个urls.py文件用来存储所有和这个app相关的子url。(文件名可以随便是什么,但是一般都是 urls.py,这样别人才放方便查看)注意:应该使用include函数包含子u...原创 2018-10-23 19:29:30 · 2162 阅读 · 0 评论 -
DTL语言学习(三){% with %}标签和{% url %}标签的使用
{% with %}标签的使用首先新建一个测试环境。新建一个项目,然后创建一个with_demo的app,在app中创建urls.py的文件,再创建一个templates的文件夹,在templates中再创建一个with.html的文件。然后将所有的配置都配置好,即添加url,添加app至settings.py中等等。直到能正常访问到with.html这个文件时就配置完成了。然后就是编写...原创 2018-10-25 16:16:53 · 2542 阅读 · 1 评论 -
Django内置的url转换器
在写项目中,我们有时候需要规定url传递的参数的种类,这个时候我们就需要用到Django中内置的url转换器了。编写测试代码:在项目中的app中的views.py中写入一下代码:from django.http import HttpResponsedef student_detail(request,student_id): text = "该学生的学号是:%s" % stud...原创 2018-10-22 23:54:11 · 1409 阅读 · 0 评论 -
Django中url详解
url映射:1,为什么Django中的所有url都写在urls.py文件中呢,又为什么Django 又会去urls.py中寻找映射呢?因为在‘settings.py’文件中配置了’ROOT_URLCONF’为‘urls.py’。所以Django会去urls.py中寻找,而且我们也必须把所有的url写在urls.py文件中。2,在’url.py’中所有的映射,都应该放在‘urlpatterns...原创 2018-10-22 22:16:33 · 1471 阅读 · 0 评论 -
安装virtualenv,使用virtualenv创建虚拟环境
安装virtualenv#windows下 ,只有一个版本的python直接使用第一条命令安装,如有python2和python3的版本,#用python2的使用第一条命令,python3的使用第二条命令。pip install virtualenvpip3 install virtualenv#linux系统下#我使用的是ubuntu16.04系统,同时有python2和pytho...原创 2018-10-19 13:39:22 · 457 阅读 · 0 评论 -
Django中DEBUG模式详解
在settings.py文件中有一个变量为DEBUG默认值是DEBUG = True当DEBUG = True时的好处为1.如果开启了DEBUG模式,那么以后我们修改了Django项目的代码,然后按下ctrl+s,那么Django就会自动的给我们重启项目,不需要手动重启。2.如果开启了DEBUG模式,那么以后Django项目中的代码出现bug了,那么在浏览器中和控制台会打印出错信息。否...原创 2018-10-19 23:36:16 · 24530 阅读 · 2 评论 -
Django项目结构介绍
一个刚刚创建好的项目没有做过任何改变的项目目录结构为manage.py以后和项目的交互基本都是基于这个文件。一般都是在终端输入python manage.py [子命令]。可以输入python manage.py help看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件。settings.py保存项目所有的配置信息。所有和项目相关的配置都保存在里面。urls.p...原创 2018-10-19 23:17:23 · 1377 阅读 · 0 评论 -
Django创建第一个项目
通过命令行的方式需要先进入虚拟环境中,否则会创建在系统环境中,然后进入需要创建项目的位置,执行命令:django-admin startprojects [项目名称]通过pycharm方式在pycharm左上角file-&gt;newproject:选择好你需要用的的虚拟环境的路径和项目安装位置就行了两者创建项目的区别用pycharm的方式创建项目会在项目目录下多一个叫templ...原创 2018-10-19 22:59:32 · 2300 阅读 · 0 评论 -
DTL常用过滤器详解
什么是过滤器?通俗的说,过滤器就是一个函数,可以对需要处理的参数进行处理,并且还可以额外接收一个参数(也就是说,最多只能有2个参数)。为什么要使用过滤器?因为在DTL中,不支持函数的调用形式,因此不能给函数传递参数,这将有很大的局限性。所以需要使用过滤器来进行对参数的处理。add过滤器新建一个filter_demo的项目,然后在和manage.py同级目录下的filter_demo下新建...原创 2018-10-25 19:36:27 · 1852 阅读 · 0 评论 -
Django中url命名与反转url,应用命名空间和实例命名空间
url命名为什么需要给url命名?因为url是经常变化的。如果在代码中写死可能会经常改代码。给url取个名字,以后使用url的时候就使用他的名字进行反转就可以了,就不需要写死url了。示例:在项目中新建一个front的app,views.py中写入一下代码:from django.shortcuts import renderfrom django.http import HttpRe...原创 2018-10-23 13:38:35 · 1421 阅读 · 0 评论 -
Django中使用mysql数据库并使用原生sql语句操作
Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库。准备的软件mysql数据库,版本5.7及以上。navicat,(可选的)。使用navicat主要是简化我们对数据库的操作。没有也一样。安装mysql驱动程序。常见的驱动程序:a. MySQL-python:也就是MySQLdb...原创 2018-10-31 09:18:27 · 10155 阅读 · 3 评论 -
DTL语言学习(一)模板变量和{% if %}标签的使用
目前市面上有非常多的模板系统,其中最知名最好用的就是DTL和Jinja2。DTL是Django Template Language三个单词的缩写,也就是Django自带的模板语言。当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,DTL能和Django达到无缝衔接而不会产生一些不兼容的情况。因此使用Django一般都使用DTL模板系统。DTL与普通的...原创 2018-10-24 13:31:43 · 7629 阅读 · 0 评论 -
Django中static(静态)文件详解以及{% static %}标签的使用
想要深入学习Django的可以看一些这个视频:超细讲解Django打造大型企业官网在一个网页中,不仅仅只有一个html骨架,还需要css样式文件,js执行文件以及一些图片等。因此在DTL中加载静态文件是一个必须要解决的问题。在DTL中,使用static标签来加载静态文件。要使用static标签,首先需要{% load static %}。加载静态文件的步骤如下:首先确保django.con...原创 2018-10-26 22:24:11 · 47774 阅读 · 14 评论 -
Django模板结构优化{% include %}和{% extend %}标签
{% include %}标签在拉勾网中我们可以发现,他的每个网页的头部和尾部都是一样的,那么他是每个html文件中都写了这些代码吗?答案肯定是否定的。这个时候就需要用到我们的{% include %}标签了。新建一个项目,然后在里面新建一个template_include_demo的app,然后创建一个urls.py的文件,在主urls中对template_include_demo这个a...原创 2018-10-26 20:52:35 · 7489 阅读 · 2 评论 -
Django中模板查找路径及抛出TemplateDoesNotExist的异常时如何查找错误信息
模板查找路径:在项目的settings.py文件中,有一个TEMPLATES配置,这个配置包含了模板引擎的配置,模板查找路径的配置,模板上下文的配置等。模板路径可以在两个地方配置TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', #使用命令创建的Dja...原创 2018-10-24 09:58:13 · 2015 阅读 · 4 评论