django开发
文章平均质量分 59
此专栏主要为django框架入门级的开发项目与知识点,在此帮助小白快速入门django框架,熟练使用框架搭建项目。
花开花落与云卷云舒
这个作者很懒,什么都没留下…
展开
-
python+django+动态生成word
一、思路创建动态word模板文档调用实例中的字段写入word模板中保存word文档二、代码实现@receiver(post_save, sender=Resume)def post_save_resume(sender, instance, **kwargs): """触发器,当管理员修改面试成绩“通过”之后触发,@receiver第一个参数为管理员单击“保存后”触发""" # 生成动态word template_path = os.getc原创 2021-04-10 16:37:35 · 2172 阅读 · 4 评论 -
django中models.py中的null和blank的区别
一、前言我们在django的models中的时候经常会用到null和blank,如果不清楚他们的用法可能很容易用错。二、null和blank的用法null:null主要是用在数据库上,当我们定义null=True的时候,数据库中的数据使用NULL来填充的。默认是null=False;主要是用在IntegerField,DateField, DateTimeField,这几个字段不接受空字符串,所以在使用时,必须将blank和null同时赋值为True。blank:blank主要用..原创 2021-04-27 10:38:38 · 477 阅读 · 0 评论 -
django的F表达式和Q函数应用与原理
一、F表达式1.1 原理F表达式是对数据库中某列值进行操作,允许还没有链接到数据的情况下对数据库字段的值进行操作,而不需要获取到对象放在内存中再对字段进行操作,直接执行原sql语句。在通常情况下,我们在操作数据的时候都是先从数据库中将原数据取出放到内存中,然后再编辑某些属性,最后再提交。1.2 应用初始数据库数据使用F字段直接进行数学运算from django.db models import F res = models.Bbook.objects.all().upda原创 2022-04-06 10:00:00 · 1224 阅读 · 0 评论 -
基于django-haystack的全文高级搜索查询
一、基于数据库的模糊查询这是一种很不理想的查询方法,并且对数据库的压力很大,查询的效率低下,我一般不建议采用这种查询方式。例如:想要查询models.py中MyNew类的字段(title)标题代码如下def search(request): keyword = request.GET.get("keyword") # 获取前端传回来的查询关键字 newList = MyNew.objects.filter(title__icontains=keyword) # MyNe原创 2021-10-11 17:23:33 · 1074 阅读 · 0 评论 -
django中间件的原理流程
一、中间件介绍什么是中间件?官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。我们一直都在使用中间件,只是没有注原创 2021-09-27 19:46:55 · 429 阅读 · 0 评论 -
django http请求的执行步骤
Http访问流程图:一个http请求打包成HttpRequest对象; 将该对象传递给Request中间件处理,如果该中间件返回了Response,则直接传递给response中间件做收尾处理; 否则,Resquest中间件将访问URL配置,确定访问哪一个路由路径,但是在还没传给View视图的时候,系统会把request传递给View中间件处理器,如果该中间件返回Response,那么该Response直接传递给Response做收尾处理; 否则,将执行对应的View视图并返回给Re.原创 2021-09-18 16:27:01 · 505 阅读 · 0 评论 -
用户Django通用试图的get_queryset,get_context_data和get_object等方法
一、前言Django提供了很多通用基于类视图的方法,下面我们就介绍get_queryset,get_context_data,get_object这三种方法基于类视图的方法的的使用。展示对象列表(比如所有用户,所有文章)-ListView 展示某个对象的详细信息(比如用户资料,比如文章详情) -DetailView 通过表单创建某个对象(比如创建用户,新建文章)-CreateView 通过表单更新某个对象信息(比如修改密码,修改文字内容)-UpdateView 用户填写表单后转...原创 2021-05-29 16:26:15 · 2360 阅读 · 0 评论 -
docker + nginx + uwsgi + ubuntu部署django项目
前提:你项目部署的服务器端口是开启的,在外部是可以访问到的。这里不懂就百度一下。并且在服务器上已经安装了docker。一、拉取镜像1.1 拉取python镜像在这里我们拉取的是python的镜像,这样方便我们项目中库包的下载,我们就不用自己取安装pip。python中有自带的pip。sudo docker pull python1.2 制作python容器我们用python镜像制作python容器,hengda是我们的项目名sudo docker run -it --name原创 2021-04-23 23:31:16 · 576 阅读 · 0 评论 -
docker 容器报错ImportError: libGL.so.1: cannot open shared object file: No such file or dir
在运行docker程序的时候报错:ImportError: libGL.so.1: cannot open shared object file: No such file or dir这是由于容器内部的问题所引起的,我们只要更新下面两条语句就可以了。我的环境是ubuntu,这是在docker容器内部的。apt updateapt install libgl1-mesa-glx在服务器的话,我们要加上权限sudo apt updatesudo apt install libgl1-原创 2021-04-19 21:06:11 · 9583 阅读 · 0 评论 -
hengda项目部署
一、检查是否都是ubuntu能找到的库包在requirement.txt中有一个库包pywin==227这个库包是windows环境才有的,在ubuntu中没有这一个库包,在word生成pdf中用到了这个库包,所以将这一段代码注释掉(common/send_email.py)二、启动项目在启动的时候会报错解决方法:apt updateapt install libgl1-mesa-glx下载更新...原创 2021-04-19 21:01:47 · 135 阅读 · 0 评论 -
django +StreamingHttpResponse文件下载
一、StreamingHttpResponse可以实现文件按流下载,在下载大文件时,StreamingHttpResponse下载是一个比较高效,迭代下载的过程,这减轻了内存的压力。二、代码实现import osfrom django.http import StreamingHttpResponsefrom django.shortcuts import render, get_object_or_404# Create your views here.from django.ut原创 2021-04-12 15:36:00 · 1187 阅读 · 0 评论 -
python+django+word转pdf
一、思路判断word文件是否存在将word文档转为pdf二、代码import osimport pythoncomfrom docx2pdf import convert@receiver(post_save, sender=Resume)def post_save_resume(sender, instance, **kwargs): """触发器,当管理员修改面试成绩“通过”之后触发,@receiver第一个参数为管理员单击“保存后”触发""" # 调用CoI原创 2021-04-10 16:43:24 · 765 阅读 · 0 评论 -
django企业门户网站系统项目(五)
接着上一章的内容,我们继续来完善系统,我们接下去的是“公司简介”模块。在这一模块中我们分为两个页面:企业概况和荣誉资质。我们在页面的侧边栏可以选择那一页的内容。一、企业概况在templates中新建文件夹aboutApp,用于存放公司简介的页面代码,在文件夹下新建honor.html和survey.html页面在survey.html页面中,我们写上下面的代码:......原创 2021-04-08 20:13:28 · 2744 阅读 · 2 评论 -
修改xadmin后台app的为自定义的名字
一、前言当我们配置好xadmin后台时,我们会发现自己定义的app是英文的,但是我们又想让app显现我们想要的名字的时候,接下去我就讲讲如何配置二、配置自定义app名字首先,我们来到app应用下面的apps.py文件下配置,我这里是NewsappConfig(AppConfig)这些都是文件自己生成的,我们只要添加一句verbose_name = '新闻动态' ,这里后台的app名就会显示‘新闻动态’了from django.apps import AppConfigclass原创 2021-04-03 20:56:41 · 457 阅读 · 0 评论 -
DjangoUeditor+python3.8+Django3.1.0的配置及安装使用
一、安装DjangoUeditor我们直接用命令行安装的DjangoUeditor是django2.0版本的,不适合我们,所以只能用zip安装下载地址:https://github.com/twz915/DjangoUeditor3下载之后,我们将其解压,复制DjangoUeditor文件夹到项目的根目录下,他也是我们项目的一个应用模块。创建models.py文件,后台使用富文本编辑器,所以我们要进行配置。二、富文本编辑器的配置2.1 到项目的settings.py中注册Django原创 2021-04-03 20:39:34 · 1835 阅读 · 2 评论 -
django3.0 + python 3.8 + xadmin后台更改
一、版本django3.0 + python 3.8 + xadminxadmin下载地址:https://github.com/vip68/xadmin_bugfix二、下载相关库包django自带的admin后台不是很美观,我们在做程序开发时就会想着替换,xadmin就是比较好的替换。我们去github下载完之后解压,把xadmin这个文件和requirements.txt文件复制到项目根目录下,然后我们在项目的更目录下的终端执行,我的编辑器时pycharmpip instal原创 2021-04-01 21:52:47 · 1305 阅读 · 0 评论 -
django企业门户网站系统项目(四)
基于上一篇文章,我们来构建“科研基地”页面一、科研基地页面头部我们引入了base.html这个模板{% extends 'base.html' %}{% load static %}{% block title %} 科研基地_恒达科技{% endblock %}{% block content %} <div class="container-fluid"> <div class="row"> <原创 2021-03-31 20:14:18 · 2259 阅读 · 2 评论 -
django企业门户网站系统项目(三)
一、引入bootstrap上一节我们已经可以访问项目在前台显示了。下面来完善我们的项目。为了节省开发,我们引入bootstrap,去官网下载bootstrap,解压之后找到dist/文件夹里面包含了css、fonts、js等,将这三个文件夹复制到我们的static中,结构如下:再到hengda/settings.py末尾加入STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"),)这样原创 2021-03-31 19:51:50 · 2313 阅读 · 2 评论 -
django企业门户网站系统项目(二)
一、项目准备话不多说,我们开始准备项目的开发环境和软件我的开发环境是:python 3.7.4,pycharm(不知道这个软件的可以去官网下载,百度一下就可以找到,专业版的有学生认证是免费的,不想认证也可以去网上找破解的方法。还有社区版但是功能不太强大,建议用专业版),django 3.1.4不知道怎么创建项目的去网上找一下,很容易的。二、开始项目项目名:hengda创建完成之后启动项目,你可以看见下面的页面证明创建项目成功了然后再pycharm软件的最下方,你可以看见这个截图,选择Term原创 2021-03-28 18:22:21 · 1918 阅读 · 1 评论 -
django企业门户网站系统项目(一)
一、前言我在网上找了很久,想找到一个基于python django做的项目都没有找到一个博客,写得比较好,并且完整的记录网站的开发过程,这给新手练手造成很大的麻烦,直接进入项目源码又不知从何下手,也看不太懂源码的思路。所以,我就想写一个完整的项目博客来充实这一块内容。本项目只做展示、练手,为新手有一个好的练手过程。二、网站效果图展示网站的页面较多,我就只列举了一部分的网页效果,主要分为几大个模块:首页,简介,新闻动态,产品中心,服务支持,科研基地,欢迎咨询;在这几大模块之中有分为很多小模块,如:概况原创 2021-03-28 16:49:01 · 2639 阅读 · 2 评论 -
docker+nginx+uwsgi部署django项目
一、构建docker容器1、拉取镜像python构建容器sudo docker pull python2、构建容器并挂载数据卷sudo docker run -it --name python3 -v /home/ubuntu/typeidea:/home/typeidea -p 8000:8000 python:3.6 /bin/bash/home/ubuntu/typeidea为服务器本地放项目的文件夹;/home/typeidea容器中的文件存放地址;8000:8000将容器的地址端口原创 2021-03-24 20:13:14 · 641 阅读 · 5 评论 -
django xadmin自动填充当前用户
一、问题描述我想在django中实现后台xadmin登录用户的自动填充,这样就不用选择用户。查了很多博客都是save_model()方法实现,但是这个方法是admin获取当前用户的,而不是xadmin获取当前用户的,后来看了源码才知道xadmin中是用save_models()方法获取的二、实现代码在你要获取当前用户的上方添加,一定要new_obj, 我用obj不可以,我也不知道为什么,如果知道的请告诉我! def save_models(self): self.new_obj原创 2021-03-19 15:38:45 · 401 阅读 · 0 评论 -
IDEA连接mysql出现“Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ proper”
一、错误页面原因:这是因为mysql的时区是美国那边的。而我们是上海时区,所以把时间再加8:00小时就可以了。错误页面如下所示:二、解决方案1.进入命令行窗口(win+R),进入mysql中,命令如下:mysql -u root -p2.输入密码:XXXXXXX3.继续输入以下命令行,如图所示:show variables like'%time_zone';显示SYSTEM就是没有设置时区;4.设置时区为上海时区set global time_zone = '+8:00';原创 2021-03-15 10:19:00 · 139 阅读 · 0 评论 -
django TemplateDoesNotExist at /blog/list/错误
这个错误让我找了好久,名字也没写错,后来才发现是settings.py拆分出了问题。TemplateDoesNotExist at /blog/list/blog/list.htmlRequest Method: GETRequest URL: http://localhost:8080/blog/list/Django Version: 3.0.6Exception Type: TemplateDoesNotExistException Value: blog/list.htmlExce原创 2021-03-12 15:36:13 · 738 阅读 · 0 评论 -
django拆分settings.py配置文件
一、拆分原因在django的开发中配置文件写在一个文件难以维持,文件内容也过大;所以我们在开发中一般会拆分为开发环境和线上环境。因此,我们会将settings.py拆分为一个python package,在不同的文件下定义配置。二、拆分步骤1.首先在settings同目录下新建settings文件夹(python package),将settings.py移到settings文件夹中改为base.py,然后再新建develop.py文件。2. 修改base.py文件中的变量BASE_DIR,增加一原创 2021-03-12 15:29:26 · 635 阅读 · 1 评论 -
django后台admin超级管理员可见所有文章,作者可见自己创作文章
一、代码# 显示作者创建的文章def get_queryset(self, request): qs = super(PostAdmin, self).get_queryset(request) # print(qs) # print(request.user.is_superuser) if request.user.is_superuser: # 超级用户可查看所有数据 return qs return qs.filter(owner=req原创 2021-03-12 09:41:16 · 443 阅读 · 3 评论 -
django的ManyToManyField字段在admin后台上显示方法
一、数据库模型代码需将 tag = models.ManyToManyField(Tag, verbose_name=‘标签’)的多个字段显示在后台上的model.py代码# 文章内容表class Post(models.Model): STATUS_NORMAL = 1 STATUS_DELETE = 0 STATUS_DRAFT = 2 STATUS_ITEMS = ( (STATUS_NORMAL, '正常'), (STATUS_D原创 2021-03-12 09:36:20 · 1227 阅读 · 0 评论 -
Django values()和values_list()的区别
一、values()values的详细文档可见官方文档:[https://docs.djangoproject.com/en/2.1/ref/models/querysets/#django.db.models.query.QuerySet.values1、values()的结果得到的是一个字典形式的查询集QuerySet,查询集是一个可迭代对象2、如何将values字典形式的查询集转换为Json数据呢?# 获取对象qs = Customer.objects.values()# 将QuerySe原创 2021-03-05 17:42:59 · 1242 阅读 · 1 评论 -
django开发将setting分为开发环境和生产环境时django-redis get_redis_connection()遇到的问题解决方法
django开发将setting分为开发环境和生产环境时django-redis get_redis_connection()遇到的问题解决方法django-redis可以作为数据库使用,也可以作为缓存使用。在django中使用redis时,要在自己的电脑上先安装redis,安装操作自行百度,然后开启本机的redis服务。我在普通的配置环境下配置一直报错,后面发现配置在开发环境(我的是在setting中的dev.py)下之后可以运行了,我也不知道为什么?# 在setting中的dev.pyCA原创 2020-12-03 15:13:42 · 1795 阅读 · 0 评论