您的位置:首页 > 编程语言 > Python开发

Python 3.6.1+Django 1.11+MySQL 5.7.18 开发环境搭建(mac os)(一)

2017-04-26 21:15 681 查看

前言

这段时间在做一个基于B/S的信息管理平台,在迪总的安排下,我和文涛同学负责后端的开发。在项目开始就确定了Python+Django+MySQL环境,在几次试验以后确定了版本,采用Python 3.6.1+Django 1.11+MySQL 5.7.18 作为开发环境。本文主要总结该环境搭建的步骤和经验,主要参考了自强学堂廖雪峰的官方网站的教程。

Python 3.6.1 的安装

安装 Python 之前首先得明确 Python 3.x 与 Python 2.x 有很大的不同,两者要分开看待。这里我们选择 Python 3.6.1 ,它是属于 Python 3.x,所以整个语法上是参考了自强学堂 Python 3 的教程。

下载 Python 3.6.1

可以从官网上下载安装包及文档:

Python官网:http://www.python.org/

Python文档下载地址:http://www.python.org/doc/

安装 Python 3.6.1

配置环境变量

运行 Python

从教程上看有3种运行方式:交互式解释器运行、命令行脚本运行、集成开发环境运行(本文后面介绍 Pycharm)。为安装验证和简单使用,我们先学会使用交互解释器运行:

MacBook_Air:~ ww$ python3
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>print("Hello world")  #进行输出测试
Hello world              #结果
>>>


出现这段文字,表示安装成功,可以看到版本。大家可以注意到我用 python3 进入解释器环境,这是由于我的 mac os 已经自带了python 2.x,而且 2.x 与 3.x 是共存的,用 python 命令的话会进入 python2.x 的环境。需注意 3.x 版本的包响应也在后面加个3,例如 pip 和 pip3。

pip 9.0.1 的使用

简单介绍

Python 有两种安装组件的方法,分别是easy_install安装和pip安装,pip是easy_install的改进版,比较老(2000年之前)的Python库要用easy_install进行安装,比较新的Python库适合用pip进行安装。做大项目应该两者都安装,我们采用pip就足够了。

验证

这里为什么直接说pip9.0.1的使用,而越过了安装,因为从文档中可以发现从Python3.4开始,它就自带了pip。前面已经有提到,要使用Python3.x的pip得用pip3这个命令:

MacBook-Air:~ ww$ pip3 -V         pip9.0.1from/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (python 3.6)


用上面的命令查看版本,我的Python3.6.1安装路径有点长,因为在安装过程中没找到该路径的方法,以后再完善。

使用

从Pypi网站自动下载并安装组件:

pip3 install tornado
pip3 install tornado=1.0.8     #安装到指定版本
pip3 install -U tornado
pip3 install -U tornado=1.0.8  #升级到指定版本
pip3 uninstall tornado
pip3 search framework          #查看所有与“framework”关键字相关的组件
pip3 help


建议暂时不安装各个组件,在后面的虚环境中再安装。

用 virtualevn 创建虚环境

鉴于一个电脑上可能有多个项目,而每个项目可能使用不同的Python版本和组件版本(如Django 1.8 和 Django 1.11),我们采用虚环境来解决这个问题。

安装virtualenv

pip3 install virtuallenv


验证

MacBook-Air:~ ww$ virtualenv --version
15.1.0


可以看出显示版本为15.1.0。

创建目录

MacBook-Air:~ ww$ mkdir Jerry
MacBook-Air:~ ww$ cd Jerry/
MacBook-Air:Jerry ww$


在该目录下创建一个独立的Python运行环境,命名为
venv

MacBook-Air:Jerry ww$ virtualenv -p python3 --no-site-packages venv
...
Installing setuptools, pip, wheel...done.


命令
virtualenv
就可以创建一个独立的Python运行环境,我们用
-p python3
指定了虚环境用的Python版本,还加上了参数
--no-site-packages
,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

新建的Python环境被放到当前目录下的
venv
目录。有了
venv
这个Python环境,可以用source进入该环境:

MacBook-Air:Jerry ww$ source ./venv/bin/activate
(venv) MacBook-Air:Jerry ww$


注意到命令提示符变了,有个
(venv)
前缀,表示当前环境是一个名为
venv
Python
环境。

下面正常安装各种第三方包,并运行python命令:

(venv) MacBook-Air:Jerry ww$ pip install jinja2
...
Successfully installed MarkupSafe-1.0 jinja2-2.9.6
(venv) MacBook-Air:Jerry ww$ python
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>


可以看到在
venv
这个虚环境下,直接用
python
命令就可进入Python3.6.1的环境。而且在该环境下,用
pip
安装的包都在
venv
这个环境中,系统Python不受影响,可以说
venv
是专门为
Jerry
这个项目而定制的。退出
ven
deactivate


(venv) MacBook-Air:Jerry ww$ deactivate
MacBook-Air:Jerry ww$


现在就回到了正常环境。从廖雪峰的Python教程可以看到:

完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离。

virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

自强学堂讲到: 用 virtualenv 来建立多个开发环境,virtualenvwrapper 使得virtualenv变得更好用 ,关于
virtualenvwrapper
以后再了解。

Django 1.11 的安装和使用

安装

Django是Python的一个组件,既然有了确定Python版本的虚环境
venv
,我们就可以给这个环境安装指定版本的组件Django3.6.1(注意是装在虚环境中,可以为不同的虚环境安装各自的不同版本的组件)。

$ pip install Django==1.11
...
Successfully installed Django-1.11 pytz-2017.2


创建Django项目

$ django-admin startproject Jerry_site   #Jerry_site是项目名


创建app

$ cd Jerry_site/   #进入项目目录
$ python manage.py startpap demo   #demo为项目名称


一般一个项目有多个app, 当然通用的app也可以在多个项目中使用(还没试过)。

现在可以看下项目的目录结构:

-  Jerry_site
-  Jerry_site
- __init__.py
- __pycache__
- settings.py
- urls.py
- wsgi.py
-  demo
- __init__.py
- migrations
- models.py
- tests.py
- views.py
-  manage.py


同步数据库

Django中自带了数据库sqlite,我们用以下命令操作:

$python manage.py makemigrations
$python manage.py migrate


makemigrations
相当于在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件。
migrate
将该改动作用到数据库文件,比如产生table之类。

这次启动服务器之前先同步数据库,否则会有警告。

使用开发服务器

$ python manage.py rumserver   #使用默认地址和端口127.0.0.1:8000
$ python manage.py rumserver 8001   #指定端口
$ python manage.py rumserver 127.0.0.1:8002   #指定地址和端口


启动:

(venv) MacBook-Air:Jerry_site ww$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
April 27, 2017 - 02:06:35
Django version 1.11, using settings 'Jerry_site.settings'
Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.


在浏览器输入
127.0.0.1:8000
可见:



至此我们的项目已经能跑起来,还有数据库没有更换到MySQL。

几个有用的命令

python manage.py flush #此命令会询问是 yes 还是 no, 选择 yes 会把数据全部清空掉,只留下空表。

python manage.py shell # Django 项目环境终端,如果你安装了 bpython 或 ipython 会自动用它们的界面,推荐安装 bpython。这个命令和 直接运行 python 或 bpython 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

python manage.py dbshell #数据库命令行,Django 会自动进入在settings.py中设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。在这个终端可以执行数据库的SQL语句。如果您对SQL比较熟悉,可能喜欢这种方式。

python manage.py #更多命令,可以看到详细的列表,在忘记子名称的时候特别有用。

小结

本文主要完成了在 mac 中 Python 3.6.1 的安装和 pip 的简单使用,并用 virtualenv 创建了虚环境,在虚环境中安装组件包 Django 1.11,并完成了项目的创建,app的创建,开发服务器的启动。下一篇将完成 MySQL 5.7.18 的安装,并在Django项目中完成与MySQL的连接与测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django python mysql mac