随笔分类 -  Django

摘要:中间件是面向切面编程的好例子,它是一个可以介入Django的request和response处理过程的钩子框架,一个轻量级、底层的“插件”系统,用于在全局修改Django的输入或输出。 要使用中间件,首先要在settings中设置: 上述是Django项目的默认设置,每一项字符串都代表一个中间件。中 阅读全文
posted @ 2018-01-06 01:34 再见紫罗兰 阅读(2615) 评论(0) 推荐(1) 编辑
摘要:同一台服务器上部署多个项目时,项目可能使用不同版本的django或者其它不同的python库,这种情况下可以使用virtualenv来创建独立的python运行环境,将不同项目的运行环境隔离出来。 virtualenv可以创建一个拥有自己安装目录的环境, 能够方便的管理python版本和管理pyth 阅读全文
posted @ 2017-09-21 01:26 再见紫罗兰 阅读(1078) 评论(0) 推荐(0) 编辑
摘要:Celery 4.0支持django1.8及以上的版本,低于1.8的项目使用Celery 3.1。 一个django项目的组织如下: 首先建立proj/proj/celery.py文件: 然后要保证django项目启动时上述的app被载入,修改proj/proj/__init__.py文件: 现在就 阅读全文
posted @ 2017-09-14 00:40 再见紫罗兰 阅读(2925) 评论(1) 推荐(0) 编辑
摘要:django项目开发中遇到过一些问题,发送请求后服务器要进行一系列耗时非常长的操作,用户要等待很久的时间。可不可以立刻对用户返回响应,然后在后台运行那些操作呢? crontab定时任务很难达到这样的要求 ,异步任务是很好的解决方法,有一个使用python写的非常好用的异步任务工具Celery。 br 阅读全文
posted @ 2017-09-10 22:08 再见紫罗兰 阅读(2017) 评论(0) 推荐(0) 编辑
摘要:在动态网站中,用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面。 这会消耗大量的资源,当访问用户量非常大时,就要考虑这个问题了。 缓存就是为了防止重复计算,把那些消耗了大量资源的结果保存起来,下次访问时就不用再次计算了。缓存的逻辑: Djan 阅读全文
posted @ 2017-09-09 00:57 再见紫罗兰 阅读(3720) 评论(0) 推荐(0) 编辑
摘要:有些项目可能涉及到使用多个数据库的情况,方法很简单。 1.在settings中设定DATABASE 比如要使用两个数据库: 这样就确定了2个数据库,别名一个为default,一个为user。数据库的别名可以任意确定。 default的别名比较特殊,一个Model在路由中没有特别选择时,默认使用def 阅读全文
posted @ 2017-09-06 16:17 再见紫罗兰 阅读(3820) 评论(0) 推荐(1) 编辑
摘要:要自己写一个存储系统,可以依照以下步骤: 1.写一个继承自django.core.files.storage.Storage的子类。 2.Django必须可以在无任何参数的情况下实例化MyStorage,所以任何环境设置必须来自django.conf.settings。 3.根据Storage的op 阅读全文
posted @ 2017-09-03 00:17 再见紫罗兰 阅读(3600) 评论(0) 推荐(0) 编辑
摘要:Django默认使用的文件存储系统'django.core.files.storage.FileSystemStorage'是一个本地存储系统,由settings中的DEFAULT_FILE_STORAGE值确定。 class FileSystemStorage(location=None, bas 阅读全文
posted @ 2017-08-30 23:32 再见紫罗兰 阅读(8801) 评论(0) 推荐(0) 编辑
摘要:FileField中的upload_to属性可以设定上传文件的存储目录和名称,它可以是个字符串,也可以是个callable,比如一个方法。 当upload_to的值设为一个方法时,就可以对上传文件的名称进行修改了。方法需要两个参数,instance与filename,instance为此FileFi 阅读全文
posted @ 2017-08-22 16:24 再见紫罗兰 阅读(1615) 评论(0) 推荐(0) 编辑
摘要:要在django项目中定期执行任务,比如每天一定的时间点抓取数据,刷新数据库等,可以参考stackoverflow的方法,先编写一个manage.py命令,然后使用crontab来定时执行这个命令。 定制manage.py命令 app可以使用manage.py注册自己的命令,比如要在polls这个a 阅读全文
posted @ 2016-04-13 16:03 再见紫罗兰 阅读(3879) 评论(1) 推荐(1) 编辑
摘要:django提供文件下载时,若果文件较小,解决办法是先将要传送的内容全生成在内存中,然后再一次性传入Response对象中: 如果文件非常大时,最简单的办法就是使用静态文件服务器,比如Apache或者Nginx服务器来处理下载。不过有时候,我们需要对用户的权限做一下限定,或者不想向用户暴露文件的真实 阅读全文
posted @ 2014-12-26 20:14 再见紫罗兰 阅读(9022) 评论(3) 推荐(0) 编辑
摘要:Migrations Django中对Model进行修改是件麻烦的事情,syncdb命令仅仅创建数据库里还没有的表,它并不对已存在的数据表进行同步修改,也不处理数据模型的删除。 如果你新增或修改数据模型里的字段,或是删除了一个数据模型,你需要手动在数据库里进行相应的修改或者使用South。Djang 阅读全文
posted @ 2014-11-18 20:20 再见紫罗兰 阅读(51194) 评论(0) 推荐(4) 编辑
摘要:Model实例,myapp/models.py:from django.db import modelsclass Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField... 阅读全文
posted @ 2014-11-04 23:23 再见紫罗兰 阅读(10687) 评论(0) 推荐(1) 编辑
摘要:InlineModelAdminclass InlineModelAdminclass TabularInlineclass StackedInline举例,有两个Model:from django.db import modelsclass Author(models.Model): name... 阅读全文
posted @ 2014-11-04 19:54 再见紫罗兰 阅读(12110) 评论(2) 推荐(1) 编辑
摘要:ModelAdmin methodssave_model(request, obj, form, change)此方法为admin界面用户保存model实例时的行为。request为HttpRequest实例,obj为model实例,form为ModelForm实例,change为bool值,取决于... 阅读全文
posted @ 2014-11-04 17:01 再见紫罗兰 阅读(6756) 评论(0) 推荐(0) 编辑
摘要:Admin管理界面是django的杀手级应用。它读取你模式中的元数据,然后提供给你一个强大而且可以使用的界面,网站管理者可以用它立即向网站中添加内容。要使用admin,可以按照下面的步骤:将'django.contrib.admin'加入setting的INSTALLED_APPS配置中。保证INS... 阅读全文
posted @ 2014-11-04 01:32 再见紫罗兰 阅读(4353) 评论(0) 推荐(1) 编辑
摘要:扩展已有的用户模型Extending the existing User model有两种方法来扩展默认的User Model而不用重写自己的模型。如果你不需要改变存储在数据库中的字段,而只是需要改变Model的行为,您可以创建一个基于User的代理Model。允许的行为包括默认的ordering,... 阅读全文
posted @ 2014-10-30 02:42 再见紫罗兰 阅读(3883) 评论(0) 推荐(0) 编辑
摘要:Django的权限系统很简单,它可以赋予users或groups中的users以权限。Django admin后台就使用了该权限系统,不过也可以用到你自己的代码中。User对象具有两个ManyToManyField字段,groups和user_permissions groups = mode... 阅读全文
posted @ 2014-10-29 22:57 再见紫罗兰 阅读(4785) 评论(0) 推荐(0) 编辑
摘要:在每个Web请求中都提供一个 request.user 属性来表示当前用户。如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例。 你可以通过is_authenticated()来区分,例如: if request.user.is_authenticated 阅读全文
posted @ 2014-10-29 22:46 再见紫罗兰 阅读(7536) 评论(0) 推荐(0) 编辑
摘要:User对象User对象是认证系统的核心。用户对象通常用来代表网站的用户,并支持例如访问控制、注册用户、关联创建者和内容等。在Django认证框架中只有一个用户类,例如超级用户('superusers’)或('staff')用户只不过是相同用户对象设置了不同属性而已。缺省字段Fieldsuserna... 阅读全文
posted @ 2014-10-29 22:44 再见紫罗兰 阅读(20193) 评论(0) 推荐(1) 编辑