zoukankan      html  css  js  c++  java
  • 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中成功发布过应用,所以建议不去改动基础类库

  • 相关阅读:
    Mybatis Plus整合PageHelper分页的实现示例
    关于xlrd最新版本不支持.xlsx文件的解决办法
    mysql 错误解决大法 Specified key was too long; max key length is 767 bytes
    php连接redis
    flask通过request.path获取定义view函数的文件和行号
    使用bash内置命令complete来实现参数补全
    linux下对比两个文件夹下python文件的差异
    ssh登录后自动切换到原来的目录
    ssh &2>1 和重定向顺序问题
    wsl1(win10)中安装bochs
  • 原文地址:https://www.cnblogs.com/freewsf/p/10655356.html
Copyright © 2011-2022 走看看