python
文章平均质量分 58
Timplan
这个作者很懒,什么都没留下…
展开
-
Django模型的继承
抽象模型继承(abstract model)假如我们有如下两个模型Article(文章)和Course(课程)模型。它们的模型中有很多共同的字段,比如作者、标题、创建日期和更新日期这样写会造成大量的代码重复,一个更好的方式是提取两个模型共同的字段建立一个父类抽象模型(abstract model),再建立子类模型去继承父类。我们需要根据子类模型的名字,生成差异化的related_name。这时我们只需在父类模型中设置related_name时引用应用名app_label(%(app_label)s原创 2020-08-25 09:58:44 · 701 阅读 · 0 评论 -
Django限制用户上传文件格式与大小的最佳处理方式是什么
一个处理该问题的最佳方式是扩展Django的FileFiled字段,在创建模型时直接设置可以接受的文件类型,并限定可以上传的文件的最大尺寸首先在你APP文件夹内新建fields.py, 并添加如下代码(来自stackoverflow)。新扩展的FileField叫RestrictedFileField继承了FileField类,并包含了额外的两个可选参数: 可接受的内容类型content_types和max_upload_size最大上传尺寸(比如5242880=5MB)from django.db原创 2020-08-25 09:39:59 · 979 阅读 · 0 评论 -
Django --根据已有表生成ORM模型
在实际开发中,有些时候可能数据库已经存在了。如果我们用Django来开发一个网站,读职的是之前已经存在的数据库中的数据。那么该如何将模型与数据库中的表映射呢?根据旧的数据库生成对应的ORM模型,需要以下几个步骤:1、Django给我们提供了一个inspectdb的命令,可以非常方便的将已经存在的表,自动的生成模型。想要使用inspectab自动将表生成模型。首先需要在settings...原创 2019-10-01 15:51:55 · 3442 阅读 · 2 评论 -
Django --自定义path转换器
自定义URL转换器:相信之前已经了解到过一些django内置的url转换器,包括有int、uuid,等。有时候这些内置的url转换器并不能满足我们的需求,因此django给我们提供了一个接口可以让我们自己定义自己的url转换器。自定义url转换器按照以下五个步骤来走就可以了:1.定义一个类,直接继承自object就可以了.2.在类中定义一个属性regex,这个属性是用来限...原创 2019-10-01 15:17:02 · 532 阅读 · 0 评论 -
Python 建立虚拟环境
为什么需要虚拟环境:到目前位置,我们所有的第三方包安装都是直换通过pip install的方式进行安装的,这样安装会将那个包安装到你的系统级的python环境中,但是这样有个问题,就是如果你现在用Django1.10.x写了个网站,然后你的领导跟你说,之前有个旧项目是用Django0.3开发的,让你来维护,但是Django1.80不再兼容Django0.9的些语法了这时候就会碰到个问...原创 2019-10-01 14:43:45 · 320 阅读 · 0 评论 -
Django --haystack实现全文搜索
搜索搜索可以使用最原始的like的方式进行搜索。当然这种搜索方式对于些小的数据是非常合适的。但是随着数据越来越大。这时候我们就需要使用搜索引擎了。搜索引擎会将所有要搜索的数据使用算法做个素引,以后搜索的时候就只需要根据这个索引脚找到相应的数据。搜索引擎做索引的过程会比较慢,但是一旦索引建立完成,那么以后再搜索的时候就会很快了。django-haystack插件:这个插件是专门...原创 2019-09-30 12:30:05 · 513 阅读 · 0 评论 -
Django --更改session的存储机制
默认情况下,session数据是存储到数据库中的。当然也可以将session数据存储到其他地方。可以通过设置SESSION_ENGINE来更改session的存储位置,这个可以配置为以下几种方案:1.django.contrib.sessions.backends.db :使用数据库。默认就是这种方案。2.django.contrib.sessions.backends.file :使用...原创 2019-09-30 11:14:50 · 434 阅读 · 0 评论 -
Django --操作cookie和session
cookie机制cookie是服务器传给客户端的体积很小的纯文本文件。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器发一个cookie。客户端浏览器会把cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器。服务器检查该cookie,以此来辨认用户状态。Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦...原创 2019-09-30 11:01:02 · 203 阅读 · 1 评论 -
Django --migrate错误处理
migrate怎么判断哪些迁移脚本需要执行:他会将代码中的迁移脚本和数据库中django_migrations中的迁移脚本进行对比,如果发现数据库中,没有这个迁移脚本,那么就会执行这个迁移脚本。migrate做了什么事情:将相关的迁移脚本翻译成SQL语句,在数据库中执行这个SQL语句。 如果这个SQL语句执行没有问题,那么就会将这个迁移脚本的名字记录到django_migrat...原创 2019-09-30 10:31:46 · 299 阅读 · 0 评论 -
django开发:使用django-allauth实现第三方账号登录
用户登录、注册系统,使其支持第三方登录。django-allauth,根据其官方文档(这里:https://django-allauth.readthedocs.io/en/latest/index.html),同时支持本地和第三方账号(Github,百度、微博、微信等等),集成了邮箱验证、密码修改、本地账号关联(多个)第三方账号等各种功能。安装pip install django-al...原创 2019-03-24 20:28:42 · 1496 阅读 · 1 评论 -
Python收集参数的解包
比如我们在收集参数时传入的参数是一个列表,但我们希望在使用时可以直接遍历args参数但这样我们运行的结果是:要解决此问题可以在函数的收集参数传入时前面加一个“ * ”:此时函数运行的结果是: 要是关键字参数的解包向传入的参数前加两个“ ** ”:结果为:...原创 2018-11-13 22:49:22 · 524 阅读 · 0 评论 -
Python安装scrapy库
由于本人在安装scrapy库的道路上遇到过很多坑,由此不能再坐视不管,来帮帮广大同胞首先在此网站https://www.lfd.uci.edu/~gohlke/pythonlibs/找到twisted库:在此中间找适合自己电脑配置的文件twisted下载然后用命令行进入此目录然后再命令行执行 pip install + "你所下载的那个文件名"+"(注意这里有个点).wh...原创 2018-11-01 22:22:47 · 3575 阅读 · 1 评论