2022年9月22日

Django: Redis 命令参考

http://redisdoc.com/…
2022年9月21日

Django: MySQL makemigrations migrate 迁移报错 django.db.utils.OperationalError: (1060, "Duplicate column name 'xxx'")

1. 概述: 删除所有app下migrations文件夹中除__init__.py以外的其它文件(0001_initial.py)后, makemigrations migrate 迁移不报错 导入现有数据库备份文件后, makemigrations 显示无更改,migrate 迁移报错 django.db.utils.OperationalError: (1060, "Duplicate column name 'user_id'") 2. 相关报错: django.db.utils.OperationalError: (1060, "Duplicate column name 'user_id'") 3. 报错原因: 删除所有app下migrations文件夹中除__init__.py以外的其它文件(0001_initial.py)后, makemigrati…
2022年9月20日

Django: MySQL 导出导入现有数据库 及 models.py新增模型类包含外键ForeignKey时,makemigrations migrate 迁移报错 django.db.utils.OperationalError: 3780 ... incompatible

1. 概述: MySQL 导出导入现有数据库 及 models.py新增模型类包含外键ForeignKey时,makemigrations migrate 迁移报错 2. 相关报错: django.db.utils.OperationalError: (3780, "Referencing column 'customer_id' and referenced column 'id' in foreign key constraint 'TS_user_customer_id_545183b3_fk_customer_info_id' are incompatible.") 3. 报错原因: django.db.utils.OperationalError: 3780 引用列和被引用列不兼容 如果没有手动修改数据库的主字段,则很可能是创建数据库的Django 版本不一样,使…
2022年9月20日

Django: MySQL 修改字段 makemigrations migrate 迁移报错

官方文档 1. 概述: MySQL 修改字段 makemigrations migrate 迁移报错 2. 相关报错: django.db.utils.OperationalError: (1054, "Unknown column 'default_image_url' in 'tb_sku'") 或 django.db.utils.OperationalError: (1051, "Unknown table 'mydorm.users_studen t'") 或 django.db.utils.OperationalError: (1050, "Table 'profiles_category' already exists") 或 django.db.utils.ProgrammingError: (1146, "Table 'tb_user' doesn't exist")…
2022年9月20日

Django: model 字段类型及选项解析

model field 类型 1、AutoField() 自增的IntegerField,通常不用自己设置,若没有设置主键,Django会自动添加它为主键字段,Django会自动给每张表添加一个自增的primary key。 2、BigIntegerField 64位整数, -9223372036854775808 到 9223372036854775807。默认的显示widget 是 TextInput. 3、BinaryField ( Django 1.6 版本新增 ) 存储二进制数据。不能使用 filter 函数获得 QuerySet 4、BooleanField() True/False,默认的widget 是 CheckboxInput。 如果需要置空,则必须用 NullBooleanField 代替。 Django 1.6 修改:BooleanField 的默认值…
2022年9月15日

Django: haystack 全文检索框架

参考: Getting Started with Haystack…
2022年9月13日

Django: 全文检索 支持中文

全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 whoosh:纯Python编写的全文搜索引擎。虽然性能比不上sphinx、xapian、elasticsearc等,但是无二进制包,程序不会莫名其妙的崩溃,对于小型的站点,whoosh已经足够使用, jieba:一款免费的中文分词包,当然也有收费的。 haystack:全文检索的框架,支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎。 PS: 我的检索是在文章模块下 forum/article 第一步:先安装需要的包: 1 2 3 pip install django-haystack pip install whoosh pip install jieba 第二步: 配置需要的文件 settings.py 添加haystack应用模…
2022年9月12日

Python: Django Jinja2 模板 用法总结

一:渲染模版 要渲染一个模板,通过render_template方法即可。 @app.route('/about/') def about(): # return render_template('about.html',user='username') return render_template('about.html',**{'user':'username'}) 渲染模版时有两种传递参数的方式:用 var='value' 传递一个参数;使用字典组织多个参数,并且加两个*号转换成关键字参数传入。   二:模板概要 Jinja模板是简单的一个纯文本文件,一般用html页面来书写。 <html lang="en"> <head> <title>My Webpage</title> </h…
2022年9月10日

Django: 自定义文件存储类 url() 返回文件的绝对URL

官方文档…
2022年9月9日

Django: 文件下载的几种方式 chunk

目录 Django文件下载 方式一:HttpResponse 方式二: StreamingHttpResponse + 迭代器 yield 方式三:StreamingHttpResponse + FileWrapper 方式四: FileResponse Django文件下载 方式一:HttpResponse 这种方式简单粗暴,适合小文件的下载,但如果这个文件非常大,这种方式会占用大量的内存,甚至导致服务器崩溃。 其原理是,HttpResponse会先读取文件到内存,然后再输出。 def file_download(request): with open('file_name.txt') as f: c = f.read() return HttpResponse(c) 方式二: StreamingHttpResponse + 迭代器 yield ​ 支持各种文件下载,通过文件…