
Django学习
scyllake
这个作者很懒,什么都没留下…
展开
-
django-xadmin后台首页添加小组件报错解决
前言xadmin首页上有个添加小组件按钮,打开的时候会报错“render() got an unexpected keyword argument ‘renderer’”环境:python3.6django 2.1.2xadmin 2遇到问题在xadmin后台首页点“添加小组件”,出现报错:“render() got an unexpected keyword argument ‘renderer’”解决办法找到xadmin/views/dashboard.py,大概在36行的位原创 2020-10-24 18:39:55 · 386 阅读 · 0 评论 -
Django学习第十五讲: 项目部署上线操作相关
1.购买云服务器并进行端口设置端口范围80/803306/33066379/637923/23443/43322/2280/803389/33892.通过nginx+uwsgi让项目运行在线上Nginx默认是80端口3.安装Python3.7安装依赖包yum install opensll-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ opens原创 2020-10-24 18:39:20 · 239 阅读 · 0 评论 -
Django学习-第十四讲:文件上传、cookie、session、memcached
1. 文件上传1.1 前端HTML代码实现1.在前端中,我们需要填入一个form标签,然后在这个form标签中指定enctype="multipart/form-data",不然就不能上传文件。2.在form标签中添加一个input标签,然后指定input标签的name,以及type="file"。<form action="" method="post" enctype="multipart/form-data"> <input type="file" name="myf原创 2020-10-24 18:38:48 · 162 阅读 · 0 评论 -
Django学习-第十三讲(下):表单(一)forms.form、forms.modelform
1. html表单和django中的表单的区别HTML中的表单:单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言。只要把input标签放在form标签中,然后再添加一个提交按钮,那么以后点击提交按钮,就可以将input标签中对应的值提交给服务器了。Django中的表单Django中的表单丰富了传统的HTML语言中的表单。在Django中的表单,主要做以下两件事渲染表单模板。表单验证数据是否合法。2.Djan原创 2020-10-24 18:38:17 · 969 阅读 · 2 评论 -
Django学习-第十三讲(上):视图高级(三)错误处理
1. 错误处理在一些网站开发中。经常会需要捕获一些错误,然后将这些错误返回比较优美的界面,或者是将这个错误的请求做一些日志保存。1.1 常用的错误码404:服务器没有指定的url。403:没有权限访问相关的数据。405:请求的method错误。400:bad request,请求的参数错误。500:服务器内部错误,一般是代码出bug了。502:一般部署的时候见得比较多,一般是nginx启动了,然后uwsgi有问题1.2 自定义错误模板在碰到比如404,500错误的时候,想要返回自己定义的原创 2020-10-24 18:37:47 · 115 阅读 · 0 评论 -
Django学习-第十二讲:视图高级(二)类视图、模板视图、列表视图、和分页
1. 类视图在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图。使用类视图可以使用类的一些特性,比如继承等。1.1 Viewdjango.views.generic.base.View是主要的类视图,所有的类视图都是继承自他。如果我们写自己的类视图,也可以继承自他。然后再根据当前请求的method,来实现不同的方法。比如这个视图只能使用get的方式来请求,那么就可以在这个类中定义get(self,request,*args,**kwargs)方法。以此类推,如果只需要实现post原创 2020-10-24 18:37:18 · 295 阅读 · 0 评论 -
Django学习-第十一讲(下):视图高级(一)网页请求限制、HttpRequest、HttpResponse、JsonResponse对象
1. 网页常用的请求method1.GET请求:GET请求一般用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态进行更改。比如向服务器获取某篇文章的详情。2.POST请求:POST请求一般是用来向服务器提交数据,会对服务器的状态进行更改。比如提交一篇文章给服务器。2. 限制请求装饰器Django内置的视图装饰器可以给视图提供一些限制。比如这个视图只能通过GET的method访问等。以下将介绍一些常用的内置视图装饰器1.django.views.decorators.原创 2020-10-24 18:36:15 · 295 阅读 · 0 评论 -
Django学习-第十一讲(上):ORM迁移命令
1.迁移命令要想执行命令,一定要进入到相应的项目目录中再进行操作,否则会执行失败1.1.makemigrations:将模型生成迁移脚本。模型所在的app,必须放在settings.py中的INSTALLED_APPS中。这个命令有以下几个常用选项:app_label:后面可以跟一个或者多个app,那么就只会针对这几个app生成迁移脚本。如果没有任何的app_label(也就是app的名字),那么会检查INSTALLED_APPS中所有的app下的模型,针对每一个app都生成响应的迁移脚本。原创 2020-10-13 20:50:57 · 502 阅读 · 0 评论 -
Django学习-第十讲(下):ORM练习
练习:假设有以下ORM模型from django.db import modelsclass Student(models.Model): """学生表""" name = models.CharField(max_length=100) gender = models.SmallIntegerField() class Meta: db_table = 'student'class Course(models.Model): """课程表原创 2020-10-13 20:50:23 · 201 阅读 · 0 评论 -
Django学习-第十讲(上):QuerySet API 学习
1. QuerySet API我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作。其实模型名字.objects是一个django.db.models.manager.Manager对象,而Manager这个类是一个“空壳”的类,他本身是没有任何的属性和方法的。他的方法全部都是通过Python动态添加的方式,从QuerySet类中拷贝过来的 所以我们如果想要学习ORM模型的查找操作,首先要学会QuerySet上的一些API的使用。2. QuerySet的方法在使用QuerySet原创 2020-10-13 20:49:52 · 235 阅读 · 0 评论 -
Django学习-第九讲:聚合函数,F、Q表达式
1. 聚合函数如果你用原生SQL,则可以使用聚合函数来提取数据。比如提取某个商品销售的数量,那么可以使用Count,如果想要知道商品销售的平均价格,那么可以使用Avg。聚合函数是通过aggregate方法来实现的。from django.db import modelsclass Author(models.Model): """作者模型""" name = models.CharField(max_length=100) age = models.IntegerField原创 2020-10-13 20:49:10 · 311 阅读 · 0 评论 -
Django学习-第八讲:django ORM数据库查询,修改等操作
1.查询操作查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在ORM层面,这些查询条件都是使用field+__+condition的方式来使用的。1.1.查询条件1 .exact使用精确的=进行查找。如果提供的是一个None,那么在SQL层面就是被解释为NULLarticle = Article.objects.get(id__exact=14)article = Artic原创 2020-10-13 20:48:49 · 207 阅读 · 0 评论 -
Django学习-第七讲:django 中的常用字段、字段属性,外键和表关系、外键操作
1. django中的常用字段1. AutoField映射到数据库中是int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做id的自动增长的主键。如果你想指定一个其他名字的并且具有自动增长的主键,使用AutoField也是可以的。2. BigAutoField64位的整形,类似于AutoField,只不过是产生的数据的范围是从1-9223372036854775807。3. BooleanField在模型层面接收的是True/False。在数据库层原创 2020-10-13 20:47:06 · 1479 阅读 · 0 评论 -
Django学习-第六讲(下):django数据库的ORM操作方法及常用字段
1.ORM模型介绍随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。2.很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些SQL语句的修改。3.写SQL时容易忽略web安全问题,给未来造成隐患。SQL注入。select * from user where username = 'zjk'#' and pass原创 2020-10-13 20:46:31 · 201 阅读 · 0 评论 -
Django学习-第六讲(上):Django数据库原生的方法操作
1.MySql 驱动程序安装我们使用Django来操作MySQL,实际上底层还是通过Python来操作的。因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序。在Python3中,驱动程序有多种选择。比如有pymysql以及mysqlclient等。这里我们就使用mysqlclient来操作。mysqlclient安装非常简单。只需要通过 pip install mysqlclient 即可安装。如果安装失败,我们可以到 离线的python库的网站中找到我们需要的相对应的版本,下载下来原创 2020-10-13 20:45:55 · 141 阅读 · 0 评论 -
Django学习-第五讲:模板中静态文件的加载
1. 静态文件一个网站中除了正常的html页面之外,还有相应的样式,以及js等其他的文件,我们把除了html网页外的文件称之为静态资源文件,下面我们介绍一下怎么在django中去加载静态资源文件1.1 加载静态资源文件第1种方法:static标签 {% load static %}在一个网页中,不仅仅只有一个html骨架,还需要css样式文件,js执行文件以及一些图片等。因此在DTL中加载静态文件是一个必须要解决的问题。在DTL中,使用static标签来加载静态文件。要使用static标签,首先需要{原创 2020-10-13 20:45:21 · 356 阅读 · 0 评论 -
使用 django-simple-captcha 的方法
InstallationInstall django-simple-captcha via pip: pip install django-simple-captchaAdd captcha to the INSTALLED_APPS in your settings.pyRun python manage.py migrateAdd原创 2020-10-13 20:44:41 · 377 阅读 · 0 评论 -
Django学习-第一讲(下) Django框架介绍与环境搭建
1.Django框架介绍Django也遵循MVC思想,但是有自己的一个名词,叫做MVTDjango,发音为[`dʒæŋɡəʊ],Django诞生于2003年秋天,2005年发布正式版本,由Simon和Andrian开发。2.Django版本和Python版本的选择参考地址: https://docs.djangoproject.com/zh-hans/2.1/faq/3.Django开...原创 2019-08-19 13:23:12 · 185 阅读 · 0 评论 -
Django学习-第二讲 DjangoURL与视图
1.视图的概念视图一般都写在app的views.py中,一个app我们可以看作是一个网站中的一个模块。并且视图的第一个参数永远都是request(一个HttpRequest)对象。这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等。在视图中,一般是完成逻辑相关的操作。比如这个请求是添加一篇博客,那么可以通过request来接收到这些数据,然后存储到数据库中,最后再把执行的结果返回...原创 2019-08-19 13:24:27 · 224 阅读 · 0 评论 -
Django学习-第三讲(上) 初识Django 模板
1.模板介绍在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面。DTL是Django Template Language三个单词的缩写,也就是Django自带的模板语言。当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接...原创 2019-08-22 14:52:08 · 111 阅读 · 0 评论 -
Django学习-第三讲(下) Django 模板变量和常用标签
1.DTL模板变量使用语法模板中可以包含变量,Django在渲染模板的时候,可以传递变量对应的值过去进行替换。变量的命名规范和Python非常类似,只能是阿拉伯数字和英文字符以及下划线的组合,不能出现标点符号等特殊字符。变量需要通过视图函数渲染,视图函数在使用render或者render_to_string的时候可以传递一个context的参数,这个参数是一个字典类型。模板中接收变量的时候 使用...原创 2019-08-22 14:52:44 · 221 阅读 · 0 评论 -
Django学习-第四讲 Django 模板常用过滤器及模板及结构优化
1. 模版常用过滤器在模版中,有时候需要对一些数据进行处理以后才能使用。一般在Python中我们是通过函数的形式来完成的。而在模版中,则是通过过滤器来实现的。过滤器使用的是|来使用。add将传进来的参数添加到原来的值上面。这个过滤器会尝试将值和参数转换成整形然后进行相加。如果转换成整形过程中失败了,那么会将值和参数进行拼接。如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表。...原创 2019-08-22 14:53:15 · 192 阅读 · 0 评论 -
Django学习-第一讲(上) 虚拟环境
1.虚拟环境1.1为什么要用虚拟环境我们之前安装的库基本都是通过pip直接安装到全局环境中的,但是如果我们不同的项目需要用到不同的库,以及不同项目中用到同个库的不同版本,就会导致项目之间的环境不兼容,以django为例:如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Djang...原创 2019-08-19 13:22:39 · 172 阅读 · 0 评论