第一步,安装 Python
Windows 下安装 Python 非常简单,去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载好后双击安装即可。
第二步,安装django
强烈推荐在虚拟环境下进行 django 的开发。虚拟环境是一种 Python 工具,使用它可以创建一个独立的 Python 环境
第三步,virtualenv 创建和管理虚拟环境
virtualenv 的使用非常简单,首先安装 virtualenv,打开命令行工具,输入下面的命令即可安装
第四步,Django框架的View视图展示机制
Django 框架采用了 MTV 设计模式,在工作机制上自然也有些特别之处,其中最显著的就是 V 视图(View)部分。请读者再看一下图 2 中的描述,MTV 模式中的 V 视图(View)是不负责处理用户输入的,这一点就是 MTV 模式特殊之处。
第五步,Django框架的用户操作流程
Django 框架设计的 MTV 模式也是基于传统的 MVC 模式的,本质上也是为了各组件之间保持松耦合关系,只是定义上有些许不同。MVC 模式之所以能够成为 Web 框架最流行的设计标准,也是因为其比较完美地契合了用户的操作流程。
MVC 模式是软件工程中的一种通用的软件架构模式,同样也适用于 Web 应用程序。MVC 将 Web 框架分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),并以一种插件式的、松耦合的方式连接在一起。
第六步,Django框架的主要特点
这里给大家介绍 Django 框架的主要特点,其他一些小优点,读者在学习过程中会慢慢体会:
基于 Python 语言及 MVC 模式,具有开发快捷、低耦合、部署方便、可重用性高和维护成本低等显著特点。
通过一个 URL 分发器模块进行 URL 分派,分发器使用正则表达式来匹配 URL,支持开发人员采用自定义 URL 方式,且没有框架的特定限定,使用起来非常灵活。
可以方便地生成各种表单模型,实现表单的有效性检验,且支持从自定义的模型实例生成相应的表单。
具有强大且可扩展的模板语言,支持分隔设计、内容和 Python 代码,并且具有可继承性。
以 Python 类的形式定义数据模型,通过 ORM(对象关系映射)将模型与关系数据库进行连接,开发人员将得到一个非常容易使用的数据库 API,同时也支持在 Django 框架中直接使用原始 SQL 语句。
内置国际化系统,支持开发多种语言的 Web 网站。
缓存系统采用与 memcached、Redis 等缓存系统联用的方式,提高了页面的加载速度。
内置了一个可视化的、自动化管理员界面(Admin Site),其类似于一个 CMS 系统(内容管理系统),开发人员可以方便快捷地通过该界面进行人员管理和内容更新等操作。
第七步,创建Django项目
安装了Django之后,我们就可以使用Django的管理工具------>django-admin了
我们创建一个名称为loginweb的Django项目,命令如下:
#1激活虚拟环境
cd D:\djangotest
djangoenv\Scripts\activate
#2创建一个loginweb的项目
django-admin startproject loginweb
或者
python -m django startproject loginweb
一般一个项目包含多个app应用程序(当然,通用的app也可以在多个项目中使用) 下面我们为loginweb项目,创建login
#1激活虚拟环境
cd D:\djangotest
djangoenv\Scripts\activate
#2切到django项目中
cd loginweb
#3创建一个叫login的应用
django-admin startapp login
在com.example.emos.wx.config.shiro中创建ThreadLocalToken类。
package com.example.emos.wx.config.shiro;
import org.springframework.stereotype.Component;
@Component
public class ThreadLocalToken {
private ThreadLocal local=new ThreadLocal();
public void setToken(String token){
local.set(token);
}
public String getToken(){
return (String) local.get();
}
public void clear(){
local.remove();
}
}
之前我们测试sayHello()方法的时候,因为客户端提交的参数不正确,所以后端系统向客户端返回了大量的异常内容。这里我们要对返回的异常内容做一下精简。
在com.example.emos.wx.config中,创建ExceptionAdvice类。
package com.example.emos.wx.config;
import com.example.emos.wx.exception.EmosException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
@RestControllerAdvice
public class ExceptionAdvice {
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class)
public String validExceptionHandler(Exception e) {
log.error("执行异常",e);
if (e instanceof MethodArgumentNotValidException) {
MethodArgumentNotValidException exception = (MethodArgumentNotValidException) e;
//将错误信息返回给前台
return exception.getBindingResult().getFieldError().getDefaultMessage();
}
else if(e instanceof EmosException){
EmosException exception=(EmosException)e;
return exception.getMsg();
}
else if(e instanceof UnauthorizedException){
return "你不具有相关权限";
}
else {
return "后端执行异常";
}
}
}
本文到处结束,感谢大家的阅读,有不足的地方大家多多指正!!