美文网首页
框架_Django_1

框架_Django_1

作者: 土卡拉 | 来源:发表于2019-12-16 00:44 被阅读0次

    Django 环境搭建

    虚拟环境搭建(Ubuntu,windows类似)

    - 安装virtualenv
    pip  install virtualenv
    
    - 统一管理工具
    pip install virtualenvwrapper -i https://pypi.douban.com/simple
    
    - 查看安装目录
    type type virtualenvwrapper.sh
    
    - 添加到用户环境变量中
      vi ~/.bashrc 在最后添加
      export WORKON_HOME=/home/atom/.virtualenvs
      source /home/atom/.local/bin/virtualenvwrapper.sh
      > 备注: 根据virtualenvwrapper.sh位置配置
      
    - 创建对应目录
      mkdir ~/.virtualenvs
      
    - 刷新环境
      source ~/.bashrc
    
    安装直接workon  环境名就可以进去
    - 创建虚拟环境(默认是python2.7)
      # EVN_NAME虚拟环境的名字,自己设置,没有影响
      mkvirtualenv EVN_NAME
    
    - 进入到虚拟环境中
      workon EVN_NAME
      > 此时就是进入到虚拟环境中,再次输入Python时,还是显示2.7版本(默认)
    
    - 退出虚拟环境
      deactivate
      
    - 删除虚拟环境
      rmvirtualenv EVN_NAME
      
    - 创建python3的虚拟环境
      mkvirtualenv EVN_NAME -p /usr/bin/python3.5
      > 查看python3位置: type python3
      > 此时再次输入python就是为3.5版本了
    
    一般而言都开始看框架了 ,pycharm肯定知道怎么用了吧,基本工具。
    

    Django基本流程

    Django的特点

    强大的数据库功能: 拥有强大的数据库操作接口(QuerySet API),如需要也能执行原生SQL。
    自带强大的后台: 几行简单的代码就让你的网站拥有一个强大的后台,轻松管理内容!
    优雅的网址: 用正则匹配网址,传递到对应函数,随意定义,如你所想!
    模板系统: 强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理。
    (注:前后端分离时,也可以用Django开发API,完全不用模板系统。)
    缓存系统,与Memcached, Redis等缓存系统联用,更出色的表现,更快的加载速度。
    国际化,完全支持多语言应用,允许你定义翻译的字符,轻松翻译成不同国家的语言。
    

    软件设计典范-MVC模式

     Model(模型)
        应用程序中用于处理应用程序数据逻辑部分;
        通常模型对象负责在数据库中存取数据;
    - View(视图)
        应用程序中处理数据显示部分;
        通常视图是依据模型数据创建的;
    - Controller(控制器)
        应用程序中处理用户交互部分;
        通常控制器负责从视图中读取数据,控制用户输入,并向模型发送数据;
    
    优点: 降低各个功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用。
    

    Django设计模式MTV

    - Model(模型)
        负责业务对象与数据库对象(ORM)
    - Template(模板)
        负责如何把页面展示给用户
    - View(视图)
        负责业务逻辑,并在适当的时候调用Model和Template
    
    Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template。
    

    Django 环境搭建

    Django版本

    会这两种就好了,感觉就是区别在于路由的设置,别的变化不大。
    Django 1.11.x 支持 Python 2.7, 3.4, 3.5 和 3.6(长期支持版本 LTS)
    Django 2.0.x 支持 Python 3.4, 3.5 和 3.6 (注意,不再支持 Python 2)
    

    安装

    - 安装
    进入虚拟环境
      $ pip install Django==1.11.4
    - 验证是否成功()
      进入到python环境(终端中输入python)
      >>> import django
      >>> django.get_version()
      '1.11.4'
    

    创建Django项目

    - 新建Django项目:
        $ django-admin startproject projectName
        
    - 目录层级说明:
        manage.py 一个命令行工具,可以使我们多种方式对Django项目进行交互
        projectName/__init__.py 一个空文件,告诉python这个目录被看做一个python包(有这个能称之为包)
        projectName/settings.py 项目的配置文件
        projectName/urls.py  项目URL声明(路由器)
        projectName/wsgi.py    项目与WSGI兼容的Web服务器入口(网关接口,通常用在现线上环境部署)
        
    - 项目的运行:
        $ python manage.py runserver 
        $ python manage.py runserver 0.0.0.0:8000
        $ python manage.py runserver 0:8000  # 0.0.0.0简写方式
        
    - settings.py项目配置文件
        BASE_DIR 项目根目录
        SECRET_KEY 秘钥
        DEBUG 调试的开启
        ALLOWED_HOSTS 允许访问的主机
        INSTALLED_APPS 安装的应用
        MIDDLEWARE 中间件
        ROOT_URLCONF 站点url配置
        TEMPLATES 模板
        WSGI_APPLICATION wsig应用
        DATABASES 数据库
        AUTH_PASSWORD_VALIDATORS 密码验证规则
        LANGUAGE_CODE 语言(中文: zh-hans)
        TIME_ZONE 时区 (中国时区: Asia/Shanghai)
    
    - 站点管理的汉化版(在settings.py中替换以下内容即可)
        LANGUAGE_CODE = 'en-us' 替换 LANGUAGE_CODE = 'zh-Hans'
        TIME_ZONE = 'UTC' 替换 TIME_ZONE = 'Asia/Shanghai'
    

    创建应用

    -  首先cd projectName,进入项目目录下
    
    - 然后python manage.py startapp appName
    项目文件说明: 
      admin.py 站点配置
      models.py 模型
      views.py 视图
    一个项目中可以创建多个应用;
    

    激活应用

    settings.py文件中,将appName应用加入到INSTALL_APPS选项中.
    注册:
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'appName'   # 添加自己的应用
    ]
    请求流程: 用户请求 -> urls -> views -> templates -> 用户响应 【从后往前写】
    

    视图函数

    - 方式一
    def hello(request):
        return HttpResponse('hello')
    
    - 方式二
    def hello(request):
        # hello.html模板
        return render(request, 'hello.html')
    

    启动服务器

    语法:
        python manage.py runserver ip:port
    例如:
        python manage.py runserver
    备注:
        IP可以不写,代表即是本机IP
        端口号默认是8000
        启动成功后,在浏览器可以看到”It worked!”
    说明:
        这是一个纯python写的轻量级web服务器,仅仅在开发测试阶段中使用
    

    相关文章

      网友评论

          本文标题:框架_Django_1

          本文链接:https://www.haomeiwen.com/subject/lnxrnctx.html