Django1.11 学习笔记

1. 准备环境

Ubuntu16.04 下安装 virtualenv
virtualenv可以用来管理互不干扰的独立python虚拟环境,在有些场景下非常有用。
virtualenvwrapper在virtualenv的基础上提供了一些更方便的命令。

# 安装
sudo pip install virtualenv
sudo pip install virtualenvwrapper

在~/.bashrc里面加上:

export WORKON_HOME=/home/dev/virtualenv  #你创建的虚拟环境所放置的目录
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc #就可以使用了

管理环境
首先我们创建一个python3的虚拟环境,当然系统里得先装好了python3。

mkvirtualenv -p python3 web1
//or
virtualenv -p python3 web1

-p 后面的参数指定了python3(也有可能要换成python3.2/python3.4,具体要看你系统里面/use/bin/里面的文件是什么名字),如果去掉这个参数,就会使用系统默认的python。最后一个参数web1是创建的这个环境的名字。

Django1.11 学习笔记_第1张图片
image.png
其他一些常用命令:

deactivate                # 退出当前虚拟环境
workon [虚拟环境名称]       # 使用某个虚拟环境
rmvirtualenv [虚拟环境名称] # 删除某个虚拟环境
lsvirtualenv              # 列出所有虚拟环境

包管理
在实际使用中,我们会用pip来管理python的包,而在虚拟环境里的包是和系统里的包分离开的,虚拟环境之间的包也是隔离开的。

在生产环境中,我们可能需要将程序部署在很多机器上,如果能方便地把依赖的包同步到所有机器上能省去很多时间。

可以在开发机器上执行下面这个命令,来列出所有的包并保存到packages.txt,其中-l参数是只列出当前虚拟环境的包:

pip freeze -l > packages.txt

然后在部署到生产环境的时候,把packages.txt也复制到每个机器,并在每个机器上执行:

pip install -r packages.txt

2. 安装 配置 Django

# 安装
pip install Django
# 查看版本号
$ python -m django --version
# 创建项目
$ django-admin startproject mysite

目录结构


Django1.11 学习笔记_第2张图片
目录结构.png
# 用于开发的服务器
$ python manage.py runserver
Django1.11 学习笔记_第3张图片
用于开发的服务器.png
# 更换端口
$ python manage.py runserver 8080

如果你想更换服务器监听的 IP ,可以将它和端口号写在一起作为参数。比如,监听所有公网 IP(这尤其有用,当你想通过网络展示给其他人时),像这样:

$ python manage.py runserver 0:8000

改变模型需要这三步:

 # 编辑 models.py 文件,改变模型。
 python manage.py makemigrations uiclab # 运行为模型的改变生成迁移文件。uiclab 是你项目下的 app
 python manage.py migrate #运行来应用数据库迁移。

通过阅读 Django-admin 文档 了解manage.py 工具的更多信息。

3. Python3.x 下 建立 MySQL 和 python的链接

 # 安装
pip install wheel
pip install pymysql
# django in settings.py
import pymysql
pymysql.install_as_MySQLdb()

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.mysql',
#         'NAME': 'polls',
#         'USER': 'root',
#         'PASSWORD': '123456',
#         'HOST': '127.0.0.1',
#         'PORT': '3306',
#     }
# }

参考资料
https://stackoverflow.com/questions/454854/no-module-named-mysqldb
https://www.cnblogs.com/hiddenfox/p/virtualenv-python3.html

你可能感兴趣的:(Django1.11 学习笔记)