Python-Django
一心萝卜
要比昨天的自己强一点点!
展开
-
DRF搜索过滤报错“django.core.exceptions.FieldError: Related Field got invalid lookup: icontains“
序列化类中的fields中出现外键:在试图类中配置过滤若想使user的username和index的name就要采用如下写法:search_fields = ['user__username', 'index__name']原创 2020-07-29 09:42:40 · 1889 阅读 · 0 评论 -
DRF 序列化器传参数和序列化类中获取请求中的参数
序列化传参:AppraisalIndexSerializer(first_index, context={'department': department})接收参数:department = self.context['department']在序列化器方法中使用可以获得参数原创 2021-03-25 09:35:22 · 1373 阅读 · 0 评论 -
DRF 配置Swagger
最近项目组重新启动了一个项目,前后端分离方式进行开发。没搞过啊!前面都是单挑,看到前端小姐姐列出的一堆需求规范,直接麻了#o==o#!麻了也要干活,应小姐姐要求接口文档直接使用swagger,那么问题来了!这玩意也没用过,请教前端小姐姐直接白了我一眼“这个我也不会”。还是要面向百度编程。找了一堆教程然后开始配置首先安装:pip install django-rest-swagger然后添加在settings文件添加app配置在主urls.py 配置路径:from re..原创 2021-07-28 13:38:12 · 875 阅读 · 1 评论 -
Django项目中执行单个文件
在要执行的文件添加以下代码即可:import osimport djangoBASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))sys.path.append(BASE_DIR)os.environ.setdefault('DJANGO_SETTINGS_MODULE', '项目名.settings')django.setup()...原创 2021-05-07 15:51:16 · 582 阅读 · 0 评论 -
Django 取消模板语言解析关键字,忽略django模板语言
使用{% verbatim %} {% endverbatim %}包裹的django模板语言会被忽略 {% verbatim %} {% for ... %} {% endfor %}{% endverbatim %}for循环将不会执行原创 2021-04-12 16:34:43 · 318 阅读 · 0 评论 -
Django内置Admin
Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttypes django.contrib.messages django.contrib.sessions 模板的context_processors: django.contrib.auth.context转载 2021-03-16 10:36:25 · 374 阅读 · 0 评论 -
Windows IIS部署Django项目
1、安装IIS和CGI打开服务器管理器,选择添加角色和功能,选择要添加的服务器角色(WEB服务器IIS),然后安装IIS安装成功之后,然后安装CGI,再次选择添加角色和功能,找到之前安装的WEB服务器IIS,点击它。在展开的选项里找到WEB服务器,点击它,找到应用程序开发点击在展开的列表里找到CGI,勾选,然后下一步,安装它。安装好CGI之后,我们在浏览器里输入http://127.0.0.1 访问IIS,如果出现如下页面,说明IIS安装成功。2、安装P.转载 2020-12-30 09:42:59 · 169 阅读 · 0 评论 -
使用ajax上传文件时候403解决策略
使用ajax上传文件时候403解决策略:(本篇基于django框架)html代码:<form> {% csrf_token %} ...</form>js代码:var file = $('#report-upload-pdf')[0].files[0];var csrf = $('input[name=csrfmiddlewaretoken]').val();var pdfFormData = new FormData();pdf原创 2020-12-08 14:06:58 · 1202 阅读 · 0 评论 -
对上一篇进行补充修正
续上一篇html转pdf问题(https://blog.csdn.net/yixinluobo/article/details/108665999)由于页面内容过长,selenium设置Chrome无头浏览器有最大高度限制,具体多少不太清楚。网上有大佬说开启GPU加速,但这个前提要硬件支持,硬件不支持的话就是白扯。上一篇那种方法简直了,遇到超大内容肯定凉凉,但是如果要截全图确实是好方法。但是想html转pdf不太友好,所以这次对方法进行改进:其他策略不变,只将截取图表方法换成元素截图。(注释的为原先原创 2020-11-03 10:09:09 · 156 阅读 · 0 评论 -
pdfkit,wkhtmltopdf 添加包含logo和文字的页眉和水印
在使用python将html转为pdf时,我采用了pdfkit模块。现在有个需求,要求生成的pdf带水印和页眉logo。1.添加页眉:左侧logo,右侧文字options = { '--enable-local-file-access': '--enable-local-file-access', '--header-html': 'http://127.0.0.1:8000/admin/admin-add-logo/', # 该url获取到仅包含logo图片的html页面原创 2020-10-30 15:24:16 · 2357 阅读 · 0 评论 -
Django使用https协议配置
1.生成https证书:下载openssl-0.9.8k_WIN32,然后解压进入bin目录执行openssl.exe执行以下命令:genrsa -des3 -out server.key 2048 // 生成秘钥,要输如两次密码req -new -key server.key -out server.csr -config openssl.cnf // 创建服务器证书申请文件,Country Name:填CN,其他可不填rsa -in server.key -out server_n原创 2020-09-29 11:15:27 · 2233 阅读 · 0 评论 -
记一次将使用python将html转pdf的辛酸史
项目需求要将页面生成pdf,然后把每页切分成图片...本想着这事轻车熟路挺简单的,而且网上很多相关博客。话不多说直接干!咔咔咔,一顿操作页面生成了,但是有个大坑,整个页面所有内容都是ajax加载数据渲染的并且存在echarts图表。经历自己熟悉的方法和各种博客上记录方法失败后,各种检索无果后,只能另辟蹊径了。(建议:还是先采用正常套路来生成pdf,实在没办法,这个方法可以做一个参考)。需要使用的模块:selenium、pdfkit、pdf2image、pillow、wkhtmltopdf需要原创 2020-09-18 15:55:09 · 1168 阅读 · 0 评论 -
django-haystack全文检索生成索引报错UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 11-12
项目做全文检索功能在windows系统开发没问题,放到服务器上生成索引报错UnicodeEncodeError: 'ascii' codec can't encode characters in position 11-12: ordinal not in range(128)总之是编码问题,首先查看了python解释器默认编码:是utf8没问题,然后查看了服务器系统默认编码使用命令: locale发现是空白,那就将它的默认编码也设置成utf-8(可以先查看一下支持编码:locale..原创 2020-08-18 10:50:10 · 507 阅读 · 0 评论 -
Django全文检索实现:HayStack + Whoosh + Jieba
涉及到的工具 haystack是django的开源搜索框架,该框架支持Solr, Elasticsearch, Whoosh, **Xapian搜索引擎,不用更改代码,直接切换引擎,减少代码量。 搜索引擎使用Whoosh,这是一个由纯Python实现的全文搜索引擎,没有二进制文件等,比较小巧,配置比较简单,当然性能自然略低。 中文分词Jieba,由于Whoosh自带的是英文分词,对中文的分词支持不是太好,故用jieba替换whoosh的分词组件。 Model配置class转载 2020-08-18 08:57:35 · 207 阅读 · 0 评论 -
Django模板中进行日期比较
在Django模板中进行两个日期比较的判断的方法只需要在属性后面.date就好了。示例如下:{% if history.history_date.date != index.create_time.date %} 条件成立显示内容{% endif %}原创 2020-07-17 09:33:57 · 1183 阅读 · 0 评论 -
Django修改后台logo字样及标签和应用名
1.修改logo字样及标签编辑admin.py文件admin.site.site_title = '自定义内容'admin.site.site_header = '自定义内容'2.修改应用名称编辑apps.py文件from django.apps import AppConfigclass AppUserConfig(AppConfig): name = 'app_user' verbose_name = '自定义应用名'编辑__init__.py文件原创 2020-07-14 17:14:02 · 1366 阅读 · 0 评论 -
Django自定义过滤器传接收两个参数问题
今天开发过程中遇到一个问题,在自定义过滤器中需要两个参数来进行过滤判断。学艺不精,大脑中没这个东西啊!百度之后无果,只能自己想办法。原创 2020-07-14 11:23:06 · 1151 阅读 · 0 评论 -
DRF设置redis缓存
说明:最近自己在做一个小说的DRF项目,也是为了检验一下自己学习的效果。假想:这个项目投入运营,会有大量的小说供大家阅读,但是小说内容并不是实时更新的,至少不会三五分钟就更新章节吧。一般应该是一天更新一次吧。那么这里就全部配置为24小时更新一次缓存。缓存工具:redis数据库实现缓存步骤:1)安装drf-extensionsdrf-extensions是 DRF 框架的自定义扩展的集合,其中就包含有缓存的扩展。pip installdrf-extensions2)安装djan..原创 2020-06-04 11:08:03 · 699 阅读 · 0 评论 -
重写RetrieveAPIView视图类的get方法,实现小说点击量增加
在实现小说详情接口时,希望实现每点击一次小说详情,点击次数增加这一效果。重写RetrieveAPIView视图类的get方法如下:class NovelAPIView(RetrieveAPIView): queryset = models.Novel.objects.all() serializer_class = serializers.NovelModelSerializer # 重写get方法,实现增加点击量 def get(self, request, .原创 2020-05-22 19:40:16 · 1051 阅读 · 0 评论 -
Django项目实现验证码
1. django-simple-captcha 模块安装django-simple-captchapip install django-simple-captchapip install Pillow注册和注册 app 一样,captcha 也需要注册到settings中。同时它也会创建自己的数据表,因此还需要数据同步。# settings.pyINSTALLED...转载 2020-04-07 23:57:44 · 439 阅读 · 0 评论 -
Vue,Django前后端分离实现跨域和携带cookie问题
在前端Vue的main.js文件中引入axios,并让ajax默认携带cookie:// 引入Axiosimport axios from 'axios'axios.defaults.withCredentials=true; //让ajax携带cookieVue.prototype.$http=axiosaxios.defaults.baseURL = 'http://127.0....原创 2020-03-18 14:18:20 · 1902 阅读 · 0 评论 -
Django REST Framework 接口实现跨域
1. 添加第三方库 `pip install django-cors-headers`2. 在settings.py 中 INSTALLED_APPS 下 添加 一个 corsheaders```INSTALLED_APPS = [ .... 'corsheaders',]```3. 在settings.py 中 Midddleware 中,添加对应的中间件```...原创 2020-01-16 16:25:40 · 230 阅读 · 1 评论 -
Django项目搬迁,快捷导出环境依赖包到requirements.txt
项目搬迁的时候,需要把当前的环境依赖包导出,然后到部署项目的服务器上安装依赖。 我们可以通过下面的命令执行,把依赖包导出到requirements.txt文件里。生成requirements.txt文件:pip freeze > requirements.txt安装requirements.txt依赖:pip install -r requirements.txt...原创 2020-01-03 16:49:58 · 992 阅读 · 0 评论 -
Django项目中使用第三方登录——支付宝登录
1. 首先在支付宝开放平台(https://open.alipay.com/platform/home.htm)扫码注册信息选择开发者中心选择研发服务配置沙盒应用密钥使用密钥生成工具生成公钥与私钥。我使用的“支付宝开放平台开发助手”,如下图,点击生成密钥将生成的公钥粘贴到如下图:配置授权回调地址:(Django项目启动ip+自定义回调地址)支付...原创 2019-12-28 11:37:46 · 1479 阅读 · 0 评论 -
Django项目中实现未登录状态同步和异步请求跳转回原页面
编写装饰器判断登录状态def auth_session(func): def auth_session_wrapper(request, *args, **kwargs): # 验证用户是否登录 if not request.session.has_key(db.LOGIN_FLAG): request.session["msg...原创 2019-12-30 21:33:26 · 842 阅读 · 0 评论 -
python+django搭建web项目
需要的环境......(略)使用pycharm社区版搭建项目(专业版有更强大功能):打开terminal 执行命令: django-admin startproject first_project如下图:在Django_server目录下会创建一个first_project项目;连接mysql数据库:如果未安装mysqlclient驱动程序,需要执行命令:pip3 inst...原创 2019-10-15 18:29:32 · 1420 阅读 · 0 评论