django--安装

* 开发环境的搭建   
* 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?
>
> https://www.v2ex.com/
>
> https://segmentfault.com/ 

### 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 项目   

1. 用命令行的方式  

```
windows cmd  
    cd 表示查看当前位于哪个目录下 
可以创建一个目录 单独用来存放所有的项目 
1.先进入虚拟环境  workon 虚拟环境名称   
2.django-admin startproject 项目名称  
3.进入项目所在的目录 
4.启动项目  python manage.py runserver  在浏览器 访问  127.0.0.1:8000 
ctrl+c  结束   


```

2. 用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']

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值