python-django-01

Django1

 

一、Python工具 - pip


  一、做用
  Python的软件包管理器,有一些python包被集成到了pip中。只要被集成到pip中的包,都容许经过pip直接安装
  二、安装 pip
sudo apt install python-pip (python2)
sudo apt install python3-pip (python3)
  三、使用 pip / pip3
    一、安装/更新/删除 python包
  一、安装python包
    sudo pip3 install SomePackage
  ex:
    sudo pip3 install pymysql==0.7.11
  二、下载 python 包
  sudo pip3 download SomePackage
  三、删除 python 包
  sudo pip3 uninstall SomePackage
  四、更新(升级)python包
    sudo pip3 upgrade SomePackage
  二、查看当前环境中所安装的包
    pip3 list
  三、搜索
    pip3 search SomePackage
  四、展现
    pip3 show SomePackage
  五、记录现有环境的python包
    一、pip3 freeze > requirements.txt
    将当前python环境中所安装的内容打包成一个列表
    二、pip3 install -r requirements.txt
    容许在当前系统下,逐一安装requirements.txt中所列出的内容php


二、Python工具 - VirtualEnv


  一、什么是VirtualEnv - 虚拟环境
VirtualEnv,是Python中的虚拟环境,在作Python应用开发时,若是不想在大的Python环境中安装各类各样的包的话,css

则能够虚拟出一个Python环境,可让虚拟环境专门为某一个应用而存在。容许在虚拟环境中安装各类包且不影响大的python环境。
  二、安装 VirtualEnv
sudo pip3 install virtualenv
  三、建立 和 使用 虚拟环境
    一、准备工做
    mkdir my_env
    cd my_env
    二、建立虚拟环境
    virtualenv 虚拟环境名称
    ex:virtualenv defaulthtml

    建立指定版本的虚拟环境
    virtualenv -p /usr/bin/python2.7 名称
    virtualenv -p /usr/bin/python3.5 名称
    三、启动虚拟环境
    注意:不能在 bin 目录中启动虚拟环境
    source bin/activate
    四、退出虚拟环境
    deactivate
    五、删除虚拟环境
    rm 虚拟环境目录 -rf前端

  注意:
  在虚拟环境中使用pip安装和卸载内容时,不要使用 sudo 进行受权python


  四、虚拟环境管理工具 - VirtualenvWrapper
    一、做用
    第三方的管理工具,可以快速,高效并且方便的管理虚拟环境
    二、安装虚拟环境管理工具
    sudo pip3 install virtualenvwrapper
    三、配置 virtualenvwrapper
    在~目录下,有一个终端管理文件 .bashrc (在~目录下,输入 ll)
    配置 .bashrc ,以便在启动终端时,就自动启动虚拟环境管理工具
    修改.bashrc : sudo vi .bashrc
    在 .bashrc 最底部增长如下内容:
      一、export WORKON_HOME=~/my_env
      将 ~/my_env 做为虚拟环境的管理目录,全部使用virtualenvwrapper建立的虚拟环境都默认保存于此
      二、若是系统中包含多个python执行环境的话,则添加如下内容
      export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
      三、source /usr/local/bin/virtualenvwrapper.sh
      四、在 ~ 目录下,执行一遍 .bashrc
        source .bashrc
    四、使用虚拟环境管理工具
      一、建立并进入虚拟环境
        一、mkvirtualenv 虚拟环境名称
        ex: mkvirtualenv default
        二、
        mkvirtualenv --python=/usr/bin/python2.7 虚拟环境名称
      二、查看当前所维护的全部虚拟环境
        workon
      三、切换虚拟环境
        workon 虚拟环境名称
      四、退出虚拟环境
        deactivate
      五、删除虚拟环境
        rmvirtualenv 虚拟环境名称

练习:
一、完善 .bashrc 文件
二、建立一个虚拟环境 - env3.5
2.1 、建立 python3.5 虚拟环境
三、完成 虚拟环境的操做
一、切换到 env2.7
workon env2.7
二、退出虚拟环境
deactivate
三、再进入到 env3.5
workon env3.5mysql

 

三、WEB 与 服务器


  一、WEB :表示用户能够浏览的网页(HTML,CSS,JS)
  二、服务器
一、硬件 与 软件
硬件范畴:一台主机
软件范畴:一个可以接受用户请求并给出响应的程序
二、做用
一、存储WEB上的信息(网页,图片,音视频,css)
二、可以处理用户的请求(request)并给出响应(response)
三、可以执行服务器端程序:如查询数据库
三、WEB与服务器的关系
参考图 - WEB与服务器的关系
运行在服务器端的程序,能够由不一样的语言来编写:
Java语言 -> JSP
C#语言 -> ASP.NET
php语言 -> php
Python语言 -> Djangoweb


四、网站请求的全过程


一、用户:输入域名,经过域名解析(DNS)器获得IP地址
二、向服务器发送http/https请求
三、传输层TCP协议,通过网络传输和路由解析
四、WEB服务器接收HTTP请求
五、服务器处理请求内容,并进行必要的数据交换
六、将响应的内容发回给浏览器(响应)
七、浏览器解析HTML
八、显示解析好的内容
正则表达式

四、框架


一、什么是框架
框架是一个为了解决某些开放性问题而存在的一种结构。框架提供了最基本的功能,咱们只须要在这些基本功能的基础上构建本身的操做就能够了。
二、框架的优势
  一、快速开发 - 基本功能已经提供好了
  二、能够解决大部分问题
  三、bug少,稳定性较高
三、框架的分类
  一、前端框架
处理前端内容(HTML,CSS,JS)
  二、后端框架
处理服务器程序的
Spring - Java
  三、全栈框架
包含WEB总体的解决方案,包含开发框架,运行环境
Rails (Ruby)redis


Django(Python)
四、Python的WEB框架
一、Django :重量级的Python Web 框架
二、Tornado :异步框架
三、Flask :轻量级框架
四、Webpy :轻量级框架
五、Web2py :全栈框架,webpy的增强版sql

=================================================


一、设计模式 与 框架模式


  一、设计模式
设计模式,是一套被反复使用,多数人知晓并通过分类的代码设计经验的总结,是为了解决一些通用性问题的
目的:重用代码并保证代码的可靠性
官方认证的设计模式有23种:单例模式,抽象工厂模式,观察者模式 -- 《大话设计模式》
  二、框架模式
代码的重用,框架模式是解决如何设计程序框架的代码,在框架模式中会包含多种的设计模式
如:MVC,MTV,MVVM,ORM,... ...
  一、MVC
M :Models,模型层
在程序中主要处理数据,负责在数据库中对数据进行存取操做(CRUD)
V :Views , 视图层
应用程序中处理显示的部份内容(html,jsp)
C :Controllers , 控制器层
处理用户交互的部分,一般负责从模型中取出数据,再进行业务的处理,最后将数据给视图,并将视图给客户端
  二、MTV
M :Models 模型层,功能同上
T :Templates 模板层
用于处理用户显示的部份内容,如:html
V :Views 视图层
处理用户交互部分,从模型中获取数据,再将数据给模板,再显示给用户

M --- M
V --- T
C --- V

 

二、Django框架


  一、什么是Django
  是一个开源框架,2005年发布,采用Python语言开发的。早期Django是作新闻网站的。提供了很是强大的后台管理系统,采用的是MTV的框架模式
  二、Django的优缺点
    一、优势
      一、开源框架,有完美的文档支持
      二、解决方案比较完整,内部功能也比较多
      三、提供完整的路由系统,优雅的URL解析方式
      四、自助式的后台管理
    二、缺点
      目标:高内聚,低耦合
      耦合度偏高

 

下图是MTV模式


下图是MVC模式

三、Django的安装


  一、Linux 中的安装
  一、查看已安装的django
    一、进入到虚拟环境中
    二、进入到python的交互模式
    三、在交互模式中输入
      一、import django
      二、django.VERSION
  二、安装
    一、在线安装 - 使用 pip
    一、终端中输入
      pip install django
    (安装django的最高版本)

      pip install django==1.11.8

虚拟环境中不用 sudo
二、离线安装
一、下载所须要的django包
https://www.djangoproject.com/
二、在 Linux 中解压 django
  tar -xvf Django-1.11.8.tar.gz
三、进入到Django文件夹中
四、安装
  python setup.py install
二、Windows 中的安装
一、在线安装
控制台中
  pip3 install django==1.11.8
二、离线安装
一、下载django安装包
二、解压django包
三、进入到django包中
python setup.py install


四、使用Django


  一、建立Django项目
直接使用 django-admin 去建立Django项目
  一、找到项目文件夹(自定义)
  二、使用 django-admin 指令
    django-admin startproject 项目名称
  二、启动Django项目
    一、进入到项目文件夹中
    二、经过 manage.py 启动项目
一、
python manage.py runserver

./manage.py runserver
只能在本机访问
http://localhost:8000
http://127.0.0.1:8000
二、
./manage.py runserver 0.0.0.0:8000
容许在局域网内访问,能够经过IP地址访问

ex:
一、启动服务
./manage.py runserver 0.0.0.0:8000
二、查看 虚拟机 IP地址
ifconfig
三、在windows中,打开chrome浏览器,经过IP地址访问django项目

 

五、Django结构介绍


一、manage.py


  负责执行django中的各项操做的文件
  命令脚本文件
  如:
    一、启动服务
    二、建立应用
    三、建立管理员、用户
    ... ...

 


二、主文件夹(名称与项目名称相同)


  存放项目的最基础的配置文件
  一、__init__.py
    项目初始化文件,每当服务器启动的时候,会自动执行
    若是有自定义的初始化操做,须要放在该文件中
  二、urls.py
    项目的基础url(路由)配置文件
    路由:去哪找执行的程序
  三、wsgi.py
    配置应用服务器的文件,暂时不用
  四、settings.py(重要)
    项目的主设置文件:应用,模板,数据库,语言,时区,... ...
    一、BASE_DIR :项目所在的绝对路径
    二、DEBUG :调试模式
      开发过程当中,推荐使用 True
      上线运行时,必须改成 False
    三、ALLOWED_HOSTS
      设置容许访问本地项目的地址列表,若是不设置的话,只有本机(localhost / 127.0.0.1访问)。推荐些 '*' ,表示任何机器都容许访问当前项目
    四、INSTALLED_APPS
      指定已安装的应用,若是有自定义应用的话,须要在此注册
    五、MIDDLEWARE :注册中间件
    六、ROOT_URLCONF :指定项目的基础路由配置文件
    七、TEMPLATES :指定模板的信息
    八、DATABASES :指定数据库的信息
    九、LANGUATE_CODE : 指定语言,容许修改成 zh-Hans
    十、TIME_ZONE :指定时区,建议改成 Asia/Shanghai

  六、settings的加载流程
    一、先加载global_settings
      位于:虚拟环境/lib/python3.5/site-packages/django/conf
    二、再加载项目中的settings
      注意:若是 global_settings中的内容与项目settings中的内容冲突的话,优先使用项目的settings中的内容

  七、初识 django-admin 和 manage.py

    一、终端中直接输入 django-admin
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject #建立项目
test
testserver

  二、进入到项目主文件夹,输入./manage.py


[auth]
changepassword #修改密码
createsuperuser #建立超级用户

[contenttypes]
remove_stale_contenttypes

[django]
check
compilemessages
createcachetable
dbshell #进入到Django数据shell交互模式
diffsettings
dumpdata
flush
inspectdb #将数据表直接导出为Models
loaddata
makemessages
makemigrations #建立数据库日志文件,记录Models的改动
migrate #将数据库日志文件同步到数据库中
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp #建立应用
startproject
test
testserver

[sessions]
clearsessions

[staticfiles]
collectstatic
findstatic
runserver #启动服务

 

八、URL的使用


  一、urls.py
    默认在主文件夹中,包含全部的地址映射。
    每当一个请求产生后,都会到urls.py中进行地址的匹配,匹配上后再找到对应的处理程序(View视图)去执行
  二、测试
    一、项目主文件夹中,建立 views.py
    做用:包含全部定义好的视图(处理程序)
  views.py :
    from django.http import HttpResponse

    def fun_views(request):
      return HttpResponse('Hello Django')
    二、在 urls.py 中追加
    from .views import *
    urlpatterns = [
      url(r'^admin/',admin.site.urls),
      url(r'^fun/$',fun_views),
        ]

    三、url 函数
      url函数的语法
    url(regex,views,kwargs=None,name=None)
      一、regex
      正则表达式,匹配请求的 url
      二、views
      URL处理的视图函数,一般都是自定义的
      三、kwargs
      字典,用来向views传参的
      四、name
      字符串,给url()起一个别名,主要在模板中配合{%url  xxx %}一块儿使用eg: name="hello" , 模板中{%url  ”hello”%}
    四、url 向 view 传参
      一、使用正则表达式传参
      使用正则表达式的子组传参,使用()

      urlpatterns = [
        #访问路径必须是 fun
        url(r'^fun/$',fun_views),
        #访问路径必须是 fun
        url(r'^(fun)/$',fun_views),

        url(r'^fun/(\d+)',fun_arg1_views),
          ]
    注意:
      一、在 url() 中,一个子组()表示一个参数
      二、在views.py中,对应的处理函数要根据url()中子组的个数,相应的定义参数,定义的参数要位于 request以后

练习:
一、访问地址:localhost:8000/18/0223/15
如何获取 18 0223 15
二、访问地址
localhost:8000/zh/0223
localhost:8000/jp/0223

如何获取 zh(jp),0223
定义 url() 匹配模式 以及 views 的处理函数
二、使用url()第三个参数,字典传参
urlpatterns = [
url(r'^showname/$',show_views,{'name':'zsf','age':'25'}),
]

views.py
def show_views(request,name,age):
  resp = HttpResponse(name+":"+age)
  return resp
注意:
一、视图处理函数中,必须声明参数
二、参数的名称 和 位置 必需要与字典中的名称和位置保持一致

 

三、Django 中的应用


一、什么是应用
应用是网站中的一个独立的模块,包含独立的显示信息。
在项目主文件夹中通常不处理其余的请求,主要就作初始化设置 以及 地址的分发
实际操做中,会将请求,交给不一样的应用去处理

 

二、建立应用

  一、命令
  ./manage.py startapp 应用名称
  ex:
  建立一个应用,名称为 index
  二、在 settings.py中注册应用
  在 INSTALLED_APPS 中追加应用名称便可
  INSTALLED_APPS = [
    'django.contrib.admin',
    ... ...,
    'index',
      ]
  三、应用的结构组成
    一、migrations 目录
    存放数据库日志文件,是一个django与数据库交互的中间文件
    二、__init__.py
      应用的初始化操做文件
    三、admin.py
      应用的后台管理配置文件
    四、apps.py应用的属性设置文件,不需改动
    五、models.py
      Models模型文件
    六、tests.py
      测试模块,一般不用
    七、views.py
      定义视图的py文件

练习:
建立应用,并进行注册
在 day2_exer 中建立应用
一、index
二、news - 表示新闻的应用
三、sports - 表示体育的应用
四、musics - 表示音乐的应用

######

下图是:主路由配置调用应用中的视图

 

下图是:主路由配置与应用的路由配置的分发关系

Django2.0 项目依赖包:

版本: Python3.6 Django2.0 依赖库: pip install djangorestframework pip install django-filter pip install django-rest-swagger pip install djangorestframework-jwt pip install django-cors-headers pip install cryptography pip install celery pip install redis pip install PyMySQL
View Code
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息