django之python3.4及以上连接mysql的一些问题记录
首先,祭出大杀器whl
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
django1.x与django2.x 在项目的写法上有一些区别,常见的有以下:
1.配置文件中中间件的写法:
由middleware_class 直接改成:middleware 所以,在遇到直接从网上DOWN的项目的时候,一定要注意,这里的区别,否则你永远不知道各种错误是从哪里来的
2.就是url.include的写法
在django2.x中.app_name 是直接写到 app的url中,无需再在主的url中写这个
如:project的urls
url(r'', include(('blog.urls','blog'),namespace='blog')),
app的urls:
from blog import views
app_name="blog"
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^blog/article/(?P<article_id>\d+)$', views.ArticleDetailView.as_view(), name='detail'),
3.关于django连接mysql的各种资料中,以下做一个总结:
如果我们django 使用的python 版本为2.x的时候,我们连接mysql使用:pymysql
1.pip install pymysql
2.project的setting文件头部加上:
# import pymysql
# pymysql.install_as_MySQLdb()
如果我们python 版本使用的是3.4及以上的时候,我们连接mysql使用:mysqlclient
安装mysqlclient的时候,请使用上面的大杀器whl来安装
在这里搜索:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient符合你操作系统以及当前python版本的mysqlclient,copy到你的project所在的目录,如下面的:
执行:pip install mysqlclient-1.4.2-cp36-cp36m-win_amd64.whl 执行安装,
注意,这时候,我们不需要再去改setting了,无需再添加 import pymysql这个,因为当前的数据库驱动使用的是:mysqlclient了
最后,执行: pip freeze ->requirement.txt
这里写这个东西的原因是:网上看到有很多神奇的歪招,让去改什么 site_package/django/db/backend/db.py里面的判断,不做置评,但是,这个改了之后,如果应用程序是在docker发布的时候,将是非常麻烦的,
总之,像这样改了之后,我是没有成功在docker中成功发布过应用,所以建议不去改动基础类库
半斤八两开始写BLOG了
分类:
django 踩坑系列
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】