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中成功发布过应用,所以建议不去改动基础类库

  • 相关阅读:
    使用nexus 管理pip 私有包
    gitingore && opensource license 自动生成的网站
    lua-resty-qless-web UI 界面运行
    自定义pip 包开发简单说明
    ethr 微软开源的tcp udp http 网络性能测试工具
    openresty 集成lua-resty-mail +smtp2http 扩展灵活的mail 服务
    masterlab 敏捷项目管理工具
    luarocks 自定义包发布试用
    vorpal 又一个方便的cli 开发包
    gogs wekan 集成试用
  • 原文地址:https://www.cnblogs.com/freewsf/p/10655356.html
Copyright © 2011-2022 走看看