mysqldb安装_python 3 环境安装 与python2 django 2 和Django1 的区别

linux 安装python 3环境

https://www.cnblogs.com/flowercatnice/p/11694293.html

linux 切换 python 版本号

https://www.cnblogs.com/xbit/p/10286168.html

Python 2 和python 3 的区别

https://www.cnblogs.com/zengyi1995/p/10736673.html

Python 创建django 项目

django-admin startproject siteblog

django2.1 文档

https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial01/

python3使用mysqldb 可以安装 pip3 install mysqlclient

需要修改配置vim /usr/local/mysql_config

1 将 mysql_config 修改为可读权限 chmod 777 mysql_config 777 为可读可写可操作权限

将 > # Create options > libs="-L$pkglibdir" > libs="$libs -l " 替换为 > # Create options > libs="-L$pkglibdir" > libs="$libs -lmysqlclient -lssl -lcrypto"

再次执行以下 pip3 install mysqlclient

django 2.1 和django1.4.22 的区别

1 manage.py 内容 2 加了异常

2 url 路径不一样 2 是 from django.urls import path 1 是from django.conf.urls import patterns, include, url

settings 不一样,模板路径和静态路径是直接创建好的,mysql 配置不一样,模板也变了

urls.py

路径稍有不同

19fbc798b7abfbbef5547d204a995140.png

3 models 不同

reverse 导入问题 之前都是 from django.core.urlresolvers import reverse

现在都是 from django.urls import reverse

语法变了

os.path 的详情使用链接https://www.cnblogs.com/gaohuayan/p/11142123.html

python 2 和python 3 以及django 1.4.22 和django 2.1 的区别

python2 python3

字典排序

1 p2: dict_items.sort()

p3: items = sorted(dictionary.items())

2 p2: from django.core.urlresolvers import reverse

p3:from django.urls import reverse

url 路径

3 p2: url 直接使用 正则 路径不使用url 函数

p3: 普通路径 用path 正则用 re_path

导包

4 p2: from widgets import UEditorWidget

p3: 必须带上上一级的包from DjangoUeditor.widgets import UEditorWidget 对导包路径要求严格

configparser

5 p2:configparser Python2.x 中名为 ConfigParser

p3 :configparser

6 p2 事务处理transaction.commit_on_success()

p3 django2 处理事务 不知道,没有transaction.commit_on_success(

7 p2 xrange

p3 range

8 p2 from django.utils.encoding import force_unicode

p3:没有from django.utils.encoding import force_unicode

9 python2 抛出异常 except Exception,e 或者as e

p3只有as e 抛出异常没有 ,e 这样的语法

10 python2 commands

p3 python3 commands 被 subprocess 取代

11 python2 有unicode 和非unicode

p3 没有unicode str 就是unicode

12 长整型 有L

p3 没后long

13 p2 has_key 字典中是否包含指定的key

p3 不再支持 需要使用in

14 p2 :isinstance 2 可以判断unicode

p3 3 isinstance 不用判断 unicode

15 p2 :解压bytearray 类型 prodesc = zlib.decompress(str(prodesc)) # 解压

p3 :python3 解压

prodesc = zlib.decompress(prodesc) # 解压

print (type(prodesc))

aa = prodesc.decode('utf-8')weijin_prodesc1 = weijin_prodesc1.encode('utf-8')

weijin_prodesc2 = zlib.compress(weijin_prodesc1) # 压缩

16 p2 :from django.utils.importlib import import_module

p3 from django.utils.module_loading import import_module 或者

from importlib import import_module

17 p2 from django.db import close_connection

close_connection()

18 from django.db import close_old_connections

close_old_connections()

19 p2 not isinstance(label_name, (int, basestring)

p3 if not isinstance(label_name, (int, str)

20 p2 re.findall(ur'12', '123')

p3 re.findall(r'12', '123')

21 p2 from django.shortcuts import RequestContext

p3 from django.shortcuts import RequestContext

22 p2 import urllid3

p3 python3 没有urllid3 替换方法 import urllib3 或者 import urllib.request as urllib2

23 p2 python 2 urllib2、urlparse、和robotparser urlparse.urljoin

python3 urllib2、urlparse、和robotparser并入了urllib

urllib.error:ContentTooShortError、HTTPError、URLError

urllib.parse:parseqs、parseqsl、quote、quotefrombytes、quote_plus、unquote unquoteplus、unquoteto_bytes、urldefrag、 urlencode、urljoin、 urlparse、 urlsplit、 urlunparse、 urlunsplit

urllib.request:AbstractBasicAuthHandler、 AbstractDigestAuthHandler、 BaseHandler、 CatheFTPHandler、 FTPHandler、 FancyURLopener、FileHandler、HTTPBasicAuthHandler、 HTTPCookieProcessor、HTTPDefaultErrorHandler、 HTTPDigestAuthHandler、 HTTPErrorProcessorl、 HTTPHandler、HTTPPasswordMgr、 HTTPPasswordMgrWithDefaultRealm、 HTTPRedirectHandler、HTTPSHandler、OpenerDirector、ProxyBasicAuthHandler ProxyDigestAuthHandler、 ProxyHandler、 Request、URLopener、UnknowHandler、 buildopener、 getproxies、 installopener、 pathname2url、 url2pathname、 urlcleanup、 urlopen、 urlretrieve

urllib.response:addbase、addclosehook、addinfo、addinfourl

urllib.robotparser:RobotFileParser from urllib.parse import urljoin

25:Python2 quote 使用 urllib.quote()

python3 from urllib.parse import quote

python2 urllib2.urlopen()

python3 from urllib.request import urlopen

26 python 2 aes 加密没有加密参数 aes = AES.new(key)

python3 需要安装包 pip3 install pycryptodome

初始化加密参数 aes = AES.new( key.encode('utf-8'),AES.MODE_CBC)

27 python2 有 basestring

Python3 没有 basestring 用str 代替了 basestring

28 python 2 join 导包 from os.path import join

python3 import os 方式 os.path.join()

29 python 2 LANGUAGE_CODE = 'zh-CN'

python3 LANGUAGE_CODE = 'zh-Hans'

30 python 3 没有 django.db 没有 __metaclass__ = models.SubfieldBase

31python3 not urls.py 没有 re_path(r'^static/(?P<path>.*)$', 'django.views.static.serve',

{'document_root': settings.STATICFILES_DIRS[0]}),

32 django 2 以上models 的路径必须是相对路径,不能是绝对路径

33 django2 没有IPAddressField 这个models 改为 GenericIPAddressField

34 middleware 配置和django 1 不一样

35 template模板配置不一样

36 md5 加密 ,加密对象必须是encode python3 默认str 默认是unicode 报错信息Unicode-objects must be encoded before hashing

python2 aes 使用加密

18767f815ccc257020018ef6edbfce3f.png

python 3 aes 使用 加密

bbb166e49368e62131132dc97993cd63.png

解密

python 2

32dec6bbb3f9797b9e7293f58d3691ed.png

python3

ab4d7570a5b2b748d644c84ed9106aa8.png

python 2 元组排序 sorted

2b326404a0d0b2597f2a04b727ae178a.png

python3

f4937066177fed5b1fe07fc49292a87f.png

python 2 has_key

a306ef01693aeb3e3a21b06215261e1a.png

python 3

999d013b8ea9a45c4d8dcee00b8e3743.png

python 2

bd5aa4c907957e484a87217a4a5866ca.png

python3

09651decbc1b5245a453d95f372a0c8d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值