django 1
- 开发环境的搭建
- django 介绍
- django 安装
- git
开发环境的搭建
1.安装 pyenv https://github.com/pyenv/pyenv-installer
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
vim ~/.bashrc
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
将其写入最后
source ~/.bashrc
echo $PATH #如果出现这个 /home/qulinx/.pyenv/shims 表示 pyenv 安装成功
pyenv update
cd ~
ls -al
.pyenv
pyenv install --list
pyenv versions #查看已经安装的Python版本
下载软件包 Python-2.7.9.tar.xz Python-3.6.4.tar.xz
mkdir -p ~/.pyenv/cache
把它放到 ~/.pyenv/cache
pyenv install 3.6.4 -v #-v查看安装过程
pyenv rehash
pyenv global 3.6.4
pyenv +virtualenv
两个产品 同时使用Python3.6 但是 a产品 使用的是 django 或者flask 1.0 b产品使用的是 djang 或者flask 2.0 为了让这两个产品同时在一个服务器上 运行 需要 pyenv + virtualenv 结合来使用
pip install virtualenv
sudo pip install --upgrade virtualenv
使用virtualenv
1.创建项目目录
sudo mkdir -p ~/myproject/blog
2.切换到项目目录
cd ~/myproject/blog
3.创建虚拟环境
pyenv virtualenv python版本号 虚拟环境名字
4.pyenv activate 虚拟环境名字
(env36) qulinx@qulinx-virtual-machine: #表示当前位于env36环境下
在这里可以安装 django 指定的版本
pip install django==2.0.2
5.pyenv deactivate env36 切出虚拟环境
psm pip 默认从官网上下载软件 为了提高下载速度 psm 能够让pip从国内源下载
pip install psm
psm ls 列出所有国内源
psm show 查看当前用的哪一个
psm use douban 应用豆瓣 源
virtualenv 问题
创建虚拟环境 首先需要创建 项目目录 如果说 不同的人创建项目目录 不在一个地方 不太好管理
需求 :所有的虚拟环境 统一在一个目录下
virtualenvwrapper 让管理虚拟环境 更加简单化
安装 virtualenvwrapper
pip install virtualenvwrapper
vim ~/.bashrc
if [ -f /home/你的用户名/.pyenv/versions/3.6.4/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/home/你的用户名/.pyenv/versions/3.6.4/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/home/你的用户名/.pyenv/versions/3.6.4/bin/virtualenv
source /home/你的用户名/.pyenv/versions/3.6.4/bin/virtualenvwrapper.sh
fi
source ~/.bashrc
1.创建虚拟环境
mkvirtualenv 虚拟环境的名字
mkvirtualenv my_env
deactivate 退出虚拟环境
lsvirtualenv 列出所有的虚拟环境
rmvirtualenv 虚拟环境名字 #删除虚拟环境
workon 虚拟环境名字 #切换到指定的虚拟环境
workon 后面什么都不加 列出可以使用的 虚拟环境
workon 虚拟环境名字 然后 cdvirtualenv #切换到虚拟环境所在的目录
创建虚拟环境的时候指定 Python版本
mkvirtualenv --python=python路径 虚拟环境的名字
windows virtualenvwrapper安装
pip install virtualenvwrapper-win
mkvirtualenv --python=C:\Python\Python36\python.exe 虚拟环境的名字 创建虚拟环境并制定Python版本
deactivate 退出虚拟环境
workon 虚拟环境名字 #切换虚拟环境
lsvirtualenv #列出所有的虚拟环境
rmvirtualenv 虚拟环境名字 #删除制定的虚拟环境
cdvirtualenv 切换到虚拟环境所在的目录
C:\Users\neyo>workon my_env
(my_env) C:\Users\neyo>cdvirtualenv
(my_env) C:\1806env\my_env>
创建一个目录用来存放所有的虚拟环境
到这个目录下面就能知道 有哪些虚拟环境
我的电脑 属性 环境变量 系统变量
添加 WORKON_HOME
C:\1806env #你指定的目录
准备工作
python 3.6 版本
安装 virtualwrapper
安装 django==2.0
pycharm professional 专业版
安装 mysql5.7
安装 pymysql
django 介绍
2003 发布第一个版本 2005年正式版本 Simon、andrian 目的是为了 节省开发者的时间
django版本 | Python版本 |
---|---|
1.8 | 2.7 3.2 3.3 3.4 3.5 |
1.9 1.10 | 2.7 3.4 3.5 |
1.11 | 2.7 3.4 3.5 3.6 |
2.0 | 3.4 3.5 3.6 |
2.1 | 3.5 3.6 3.7 |
web服务器 应用服务器 应用框架
- web服务器 处理http请求 响应 静态文件 将动态请求传给应用服务器 apache nginx lighttpd 、IIS (微软)
- 应用服务器 用来处理业务逻辑 Python php j2ee .net web服务器不直接响应 动态请求
- web应用框架 用Python php java javascript 封装一些常用的web功能
- django
- flask
- struct2 spring3
- thinkphp laravel zendframwork ci YII2
mvc设计模式
- m model 数据模型 一个数据表 就是 一个model
- v view 视图
- c controller
MTV设计模式
- m model 模型 一个数据表 就是一个model
- t template 模板
- v view 视图
官网
https://docs.djangoproject.com/en/2.1/ 中文文档 +官网
http://python.jobbole.com/87814/ Python + Django 如何支撑了 7 亿月活用户的 Instagram?
url 组成部分 url 又叫统一资源定位符 uniform resource locator
https://www.baidu.com:443/tag/小说/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=Python培训#3
https 访问协议 http https ftp
www.baidu.com 主机名/域名/ip地址
443 表示端口号
tag/小说 表示查找的路径 表示访问子目录
/?s 表示查询的字符串
#3 锚点 后台不用管 前台用来页面定位用
url 中所有的字符都是 ASCII 码 如果非 ASCII 比如中文 浏览器会先进行编码 然后 传输
创建 django 项目
- 用命令行的方式
windows cmd
cd 表示查看当前位于哪个目录下
可以创建一个目录 单独用来存放所有的项目
1.先进入虚拟环境 workon 虚拟环境名称
2.django-admin startproject 项目名称
3.cd 项目名称 进入项目所在的目录
4.启动项目 python manage.py runserver 在浏览器 访问 127.0.0.1:8000
ctrl+c 结束
- 用pycharm
file, -newproject, -django 选择项目安装目录
existing interpreter (这里要选择你创建的虚拟环境的目录 )
有上角 绿色按钮 启动 红色 按钮停止
编辑配置 里边 选择 single instance only 表示每次 只运行 一个实例 避免 以后多个实例 不知道哪一个真正生效
关闭项目
file->close project ->然后 出来所有项目的列表 ->点击x即可
让别人访问你的项目
1.windows 下面
python manage.py runserver 0.0.0.0:8000
然后 在settings.py下面 谁要访问你 你的ip地址
ALLOWED_HOSTS = ['10.11.53.58']
2.pycharm
editing configuration
host 改为 0.0.0.0 然后制定端口号
然后 在settings.py下面 谁要访问你 你的ip地址
ALLOWED_HOSTS = ['10.11.53.58']
记得重启
上面会出现一个问题 本地没法访问
只需要在
settings.py下面 谁要访问你 你的ip地址
ALLOWED_HOSTS = ['10.11.53.58','127.0.0.1']
重启即可
### django 目录架构
- manage.py 项目交互都是 基于这个文件 python manage.py 子命令
- python manage.py startproject
- python manage.py help
- 除非有特殊需求 一般这个文件 不编辑
- settings.py 本项目的设置项 和项目有关的配置都放在 这里边
- urls.py 配置我们的url 路由的 比如 我们访问 http://127.0.0.1:8000/news 目标是访问新闻页面 在urls中 让你通过 news 找到 新闻页面
- wsgi.py 专门用来部署 一般不需要修改
django 项目规范
最开始 希望 不同的模块单独分开 需要创建 一个 Python package
django 根据功能进行了分层 比如 豆瓣中的 读书 电影 音乐 模块 所有跟模块相关的views 统一写在 该app下面的views.py中
python 提供了一个非常方便的命令
python manage.py startapp app名称
创建成功以后 里边自动创建了多个文件 比如 views.py admins.py models.py
我们需要访问 http://127.0.0.1:9000/movie/
1.服务器接收 浏览器的请求 2.先到 settings.py里边查看 ROOT_URLCONF = 'first.urls' 也就是 所有的url请求 都到 first 下面urls.py 下设置 找 urlspatterns 变量 3.到 first 下面urls.py 下 from movie import views #意思是 引入movie 下面的 views.py path('movie',views.movie), 4.到 movie 下面 编辑 views.py from django.http import HttpResponse def movie(request): return HttpResponse("电影首页")
视图函数
127.0.0.1:9000 movie() 就是它的视图函数
from django.http import HttpResponse
def movie(request): #第一个参数必须是 request 这个参数绝对不能少
return HttpResponse("电影首页") #返回值必须是 django.http.response.HttpResponseBase 的一个子类对象
django debug模式
项目下面的 settings.py 第26行 DEBUG = True 默认开启
开启以后好处:
1.每次ctrl+s 以后会自动重启项目 不需要手动重启
2.代码冲出现bug 在浏览器和控制台会提示错误信息
3.在生产环境下面 我们要求关闭掉 debug
4.DEBUG = False 当debug为False 注意 F大写 下面的ip地址 必须设置
ALLOWED_HOSTS = ['127.0.0.1','10.11.53.58']