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月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日

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月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 ​ 支持各种文件下载,通过文件…
2022年8月31日

Django: pyenv 环境下 Apache Django CGI 部署

https://github.com/chibiegg/django-cgi 参考: さくらのレンタルサーバでpyenvとDjangoを動かす さくらのレンタルサーバとは VPSとは異なり,OSの管理をさくらインターネットが行い,一部の権限だけをユーザーが持つホスティングサービスです. root権限のあるVPSとは違い,できることと使えるリソースは限られますが以下の機能がセットアップなしで利用できます. さらに,OSやApacheのセキュリティアップデートなどのメンテナンスもさくらが行うので,(自分が設置したもの以外)メンテナンスを意識せずに使えるため,これまでVPSでやってきた人にとっても思った以上に便利だと思います. ApacheによるWebサーバ CGI メールサーバ (SMTP/POP3/IMAP) データベースサーバ(My…
2022年8月26日

Django: It is impossible to add a non-nullable field

1. 概述: 在已有数据的表中新增字段时,会弹出下面的步骤让你来操作 Tracking file by folder pattern: migrations It is impossible to add a non-nullable field 'Publisher' to book without specifying a default. This is because the database needs something to populate existing rows. Please select a fix: 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)  #这是现在就输入一个默认值 2) Quit and manually define a default value…