Django框架

三大主流框架之一 Django

1.Django框架简介与环境搭建

1.MVC框架简介

​ Django就是一个遵循MVC的框架。

​ M:Model,模型 和数据库进行交互

​ V: View,视图 产生 html 页面

​ C:Controller,控制器 接受请求,进行处理,与 M 和 V 进行交互,返回应答。

MVT

​ M:Model,模型,和 MVC 中 M 功能相同,和数据库进行交互。

​ V:View,视图 ,和 MVC 中 C 功能相同,接收请求,进行处理,与 M 和 T 进行交互,返回应答。

​ T:Templates,模板,和 MVC 中 V 功能相同,产生 html 页面。

2.Django简介

​ Django,是用python语言写的开源web开发框架,并遵循MVC设计。Django的主要目的是简便/快速的开发数据库驱动网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务与整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包,这使得Django具有很强的可扩展性。它还强调快速开发和DRY原则。

​ Django框架遵循MVC设计,并且有一个专有名词:MVT

3.虚拟环境的创建和使用

​ 我们原先安装同一个包的不同版本,后安装的包会把原来安装的包覆盖掉 。这样,如同一台机器上两个项目依赖于相同包的不同版本,则会导致一些项目运行失败。

​ 解决的方案就是:虚拟环境 。

虚拟环境是真实 python 环境的复制版本 。

  • 安装虚拟环境的命令:
sudo pip install virtualenv # 安装虚拟环境
sudo pip install virtualenvwrapper # 安装虚拟环境扩展包
  • 配置虚拟环境的命令:
sudo mkdir -p $WORKON_HOME # 创建目录用来存放虚拟环境

# 在 ~/.bashrc中添加行
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

# 运行
source ~/.bashrc
  • 虚拟环境相关操作命令:
mkvirtualenv -p [/usr/bin/python3(python路径)] [虚拟环境名称] # 创建虚拟环境
rmvirtualenv [虚拟环境名称] # 删除虚拟环境
deactivate # 退出虚拟环境
workon # 进入虚拟环境 注意:按workon+两次Tab键会提示所有虚拟环境

接下来我们安装Django

  • 安装Django环境:
pip install django==1.8.2

4.Django项目和应用创建

  • 项目创建
django-admin startproject [项目名] # 项目创建命令
# 注意: 创建应用必须先进入虚拟环境

​ 项目目录如下:

​ _init_.py:说明是一个python包

​ settings.py:项目的配置文件

​ urls.py:进行 url 路由的配置

​ wsgi.py:web 服务器和 Django 交互的入口

​ manage.py:项目的管理文件

  • 应用创建

    ​ 一个项目是由很多个应用组成的,每一个应用完成一个特定的功能。

    ​ 创建应用的命令如下:

      python manage.py startapp [应用名]

    注意:创建应用时需要先进入项目目录。

    ​ 应用目录如下:

    ​ _init_.py:说明目录是一个 python 模块

    ​ models.py:写和数据库项目的内容

    ​ views.py:接收请求,进行处理,与 M 和 T 进行交互,返回应答。定义处理函数,视图函数。

    test.py:写测试代码的文件

    ​ admin.py:网站后台管理相关的文件

    建立应用和项目之间的联系,需要对应用进行注册

    修改 settings.py 中的 INSTALLED_APPS 配置项

    运行开发 web 服务器命令:

      python manage.py runserver

2.Django的基本使用

1.ORM简介

​ Django中内嵌了 ORM 框架,ORM 框架可以将类和数据表进行对应起来,只需要通过类和对象就可以对数据表进行操作

2.模型类设计和表生成

  • 设计类:模型类(models.py)

​ ORM 另外一个作用:根据设计的类生成数据库中的表

​ 定义模型类常用的Django内置方法:

  • 模型类生成表

    1. 生成迁移文件

      ​ 命令:python manage.py makemigrations

    2. 执行迁移生成表

      ​ 命令:python manage.py migrate

3.通过模型类操作数据表

models.CharField(max_length=20) # 说明数据是字符串类型,设置最大长度为20
models.DateField() # 说明数据是日期类型
models.InterField() # 说明数据是整形
models.BooleanField() # 说明数据是布尔类型
modes.ForeignKey(父类) # 定义外键

如果出现报错环境变量 Variable Environment 错误,在views.py中添加代码,代码如下:

import os
import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")# project_name 项目名称
django.setup()

在settings.py中的 DATABASES 中配置数据库:

'default': {
     'ENGINE': 'django.db.backends.mysql',
     'NAME': [数据库名],
     'USER': [mysql用户名],
     'PASSWORD': [mysql密码],
     'HOST': [地址],
     'PORT': [端口号]3306
}

在项目目录 _init_.py 下导入pymysql

import pymysql
pymysql.install_as_MySQLdb()

注意:在操作数据表前,数据库内一定已有对应的数据表。

4.视图的使用

在Django中,通过浏览器去请求一个页面时,使用视图函数来处理这个请求。视图函数处理之后,要给浏览器返回页面内容

  • 视图函数的使用

    ​ 视图函数定义在 views.py 中。

    例:

from django.shortcuts import render, redirect
from [项目名称].models import [数据库模型类]

def index(request):
    # 进行处理
    return redirect(视图)

视图函数必须有一个参数 request,进行处理之后,需要有返回值,redirect 重定向到其他网页

  • 进行 url 配置

    url 配置目的是让建立 url 和视图函数的对应关系 。url 配置项定义在 urlpatterns 的列表中,每一个配置项都调用 url 函数

    ​ url 函数有两个参数,第一个参数是一个正则表达式,第二个是对应的处理动作

    ​ 配置 url 时,有两种语法格式:

    1. url(正则表达式,视图函数名)

    2. url(正则表达式,include(应用中的 urls 文件))

      ​ 工作中在配置 url 时,首先在项目的 urls.py 文件中添加配置项时,并不写具体的 url 和视图函数之间的对应关系,而是包含具体应用的 urls.py 文件,在应用的 urls.py 文件中写 url 和视图函数的对应关系。

  • url 匹配的过程

    在项目的 urls.py 文件中包含具体应用的 urls.py 文件,应用的 urls.py 文件中写 url 和视图函数的对应关系

5.模板的使用

  1. 创建模板文件夹 [templates] 创建在项目目录内 模板的 html 放在 templates 文件夹内

  2. 配置模板目录

    ​ 项目目录下的 settings.py 下的 TEMPLATES 列表中的 DIRS 键的列表内配置模板路径

     os.path.join(BASE_DIR, 'templates')

  3. 使用模板文件

    1. 加载模板文件

      ​ 去模板目录下面获取 html 文件的内容,得到一个模板对象

    2. 定义模板上下文

      ​ 向模板文件传递数据

    3. 模板渲染

      ​ 得到一个标准的 html 内容

  4. 给模板文件传递数据

    ​ 模板变量使用:{{ 模板变量名 }}

    ​ 模板代码段:

    {%  代码段  %}

    ​ for 循环:

     {%  for i in list  %}
        {%  endfor  %}

6.静态文件

​ 在网页使用 css 文件,js 文件和图片叫做静态文件

  1. 新建静态文件夹 static 将其放在项目目录中
  2. 配置静态文件所在的物理目录,在 settings.py 中的底部配置
# 设置访问静态文件对应的url地址
STATIC_URL = '/static/'
# 设置静态文件存放的物理目录
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

  转载请注明: 浩大大 Django框架

  目录