10道题教你使用pythonDjango

1、django+python27+mysql的生产环境,想换成python3,请问需要哪些注意事项?生产环境数据不想被破坏,所以不敢轻易下手,希望大神指点一下?

关于python升级:

可以使用Python3自带工具2to3,将python2的代码转换为python3。少部分代码仍需手工转换。

升级python版本后,第三方包的版本需要升级。有的第三方包不支持python3。这个时候可以尝试使用2to3工具对第三包的python源代码进行转换,然后使用。这样存在一定风险。无法转换的,需要寻找替代包,应用服务器上对应的代码需要修改。

关于django升级:

django1.5开始支持python3。同时django1.11是支持python2的最后的版本。如果使用的django版本大于等于1.5,则django版本可以不升级。如果django版本低于1.5,则需要升级django版本。升级django版本后,新版本不兼容的老的API都需要修改。这个工作量比较大。

升级django版本后,为django服务的第三方包需要对应升级。建议django不要立即使用最新版本,以免第三方包还不支持最新的django版本。

关于mysql:

mysqldb不支持python3,需要使用mysqlclient做数据库API驱动。

django2.0只支持myslq5.5或者更高版本

一般性的版本升级注意事项。

代码和数据做好备份

python和django升级后,上线前需要充分测试。

点击添加图片描述(最多60个字)

2、刚学习django的nginx部署,一直不清楚处理高并发的原理,大神可以解释下么?

我简单说一下我的理解。

djangoWSGI是单线程的,就是说一个请求处理完了才能响应另一个请求。

uWSGI(C语言书写)+Django相比与单独使用Django,通过多进程,发挥多核的优势,支持的并发量更高。

thewebclient-thewebserver-thesocket-uwsgi-Django

uwsgi服务器运行在django一侧。

uWSGI(C语言书写)+Django相比与单独使用Django,使用多进程,发挥多核的优势,支持的并发量更高。uWSGI中有master和worker进程。master进程根据配置创建相应数目的worker进程。一个worker进程被创建后,它会运行一个python解释器实例,然后在worker进程被销毁前一直使用。master将收到的


转载请注明:http://www.aierlanlan.com/grrz/1350.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了