luffy项目后台drf搭建(1)
一 进入虚拟环境
打开crm,输入命令
- workon luffy
虚拟环境使用文档
二 安装基本类库
- pip install django
- pip install PymySQL
- pip install Pillow
- pip install djangorestframework
三 创建django项目
进入项目根目录,
- django-admin startproject luffy
四 pycharm中使用luffy虚拟环境配置
在pycharm中如果要使用已经创建好的虚拟环境,则必须设置pycharm中的python解释器,设置为
虚拟环境中的python。
/.virtualenvs/环境名称/Scripts/python.exe
启动django项目,效果如下
五 项目结构搭建
- ├── docs # 项目相关资料保存目录
- ├── logs # 项目运行时/开发时日志目录
- ├── manage.py
- ├── luffy # 开发时的代码保存
- │ ├── apps # 开发者的代码保存目录,以模块[子应用]为目录保存
- │ ├── libs # 第三方类库的保存目录
- │ ├── settings.py
- │ ├── urls.py
- │ ├── utils # 多个模块[子应用]的公共函数类库
- └── scripts # 保存项目运营时的脚本文件
六 配置数据库连接
- mysql中创建数据库和配置用户信息
- create database luffycity default charset=utf8;
- #为当前项目创建数据库用户[这个用户只能看到这个数据库]
- create user luffy_user identified by 'luffy';
#用户名:luffy_user,密码:luffy- grant all privileges on luffycity.* to 'luffy_user'@'%';
#luffycity数据配置所有权限- flush privileges;
#刷新权限
- django配置文件settings.py
- DATABASES = {
- "default": {
- "ENGINE": "django.db.backends.mysql",
- "HOST": "127.0.0.1",
- "PORT": 3306,
- "USER": "luffy_user",
- "PASSWORD": "luffy",
- "NAME": "luffycity",
- }
- }
在项目主模块的 __init__.py
中导入pymysql
- import pymysql
- pymysql.install_as_MySQLdb()
注意:启动django出错,请检查mysql是否存在匿名用户(不需要登录就可以进入mysql)
出错解决方案
- delete from user where user='';
- flush privileges;
七 日志配置
settings.py中追加如下配置
- #日志配置
- LOGGING = {
- 'version': 1,
- #是否警用其他已经存在的日记功能,False表示不禁用。
- 'disable_existing_loggers': False,
- 'formatters': {
- #详细版本日志
- 'verbose': {
- #格式: 日记等级 时间 模型 行号 信息
- 'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
- },
- #简单版本的日志
- 'simple': {
- 'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
- },
- },
- #日志的过滤
- 'filters': {
- 'require_debug_true': {
- '()': 'django.utils.log.RequireDebugTrue',
- },
- },
- #日志的处理方式
- 'handlers': {
- #控制台输出配置
- 'console': {
- 'level': 'DEBUG',
- 'filters': ['require_debug_true'],
- 'class': 'logging.StreamHandler',
- 'formatter': 'simple'
- },
- #文件输出配置
- 'file': {
- 'level': 'INFO',
- 'class': 'logging.handlers.RotatingFileHandler',
- #存储日记的目录地址和文件名【logs目录下的luffy.log需要自己创建】
- 'filename': os.path.join(BASE_DIR, "logs/luffy.log"),
- #日志文件的大小【字节】:日志文件最大300M
- 'maxBytes': 300 * 1024 * 1024,
- #日志备份数量10个
- 'backupCount': 10,
- 'formatter': 'verbose'
- },
- },
- 'loggers': {
- 'django': {
- 'handlers': ['console', 'file'],
- 'propagate': True,
- },
- }
- }
八 自定义异常处理
新建util/exceptions.py
- from rest_framework.views import exception_handler
- from django.db import DatabaseError
- from rest_framework.response import Response
- from rest_framework import status
- import logging
- logger = logging.getLogger('luffy')
- def custom_exception_handler(exc, context):
- """
- 自定义异常处理
- :param exc: 异常类
- :param context: 抛出异常的上下文
- :return: Response响应对象
- """
- # 调用drf框架原生的异常处理方法
- response = exception_handler(exc, context)
- if response is None:
- view = context['view']
- if isinstance(exc, DatabaseError):
- # 数据库异常
- logger.error('[%s] %s' % (view, exc))
- response = Response({'message': '服务器内部错误'}, status=status.HTTP_507_INSUFFICIENT_STORAGE)
- return response
settings.py配置文件中添加
- REST_FRAMEWORK = {
- ...
- # 异常处理
- 'EXCEPTION_HANDLER': 'luffy.utils.exceptions.custom_exception_handler',
- }
luffy项目后台drf搭建(1)的更多相关文章
- day76:luffy:项目前端环境搭建&轮播图的实现
目录 1.项目前端环境搭建 1.创建项目目录 2.前端初始化全局变量和全局方法 3.跨域CORS 4.axios配置 2.轮播图功能的实现 1.安装依赖模块 2.上传文件相关配置 3.注册home子应 ...
- git冲突解决、线上分支合并、luffy项目后台登陆注册页面分析引入
今日内容概要 git冲突解决 线上分支合并 登陆注册页面(引入) 手机号是否存在接口 腾讯云短信申请 内容详细 1.git冲突解决 1.1 多人在同一分支开发,出现冲突 # 先将前端项目也做上传到 g ...
- luffy项目:基于vue与drf前后台分离项目(1)
""" 1.业务逻辑:登录注册 - 主页(基础信息展示) - 课程页(复杂信息展示)- 课程订单生产与支付 - 上线订单生成 2.实际项目开发的技术点: git版本控制 ...
- ASP.NET MVC搭建项目后台UI框架—1、后台主框架
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询
ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...
- ASP.NET MVC搭建项目后台UI框架—2、菜单特效
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
随机推荐
- 8分钟学会Consul集群搭建及微服务概念
Consul介绍: Consul 是由 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与 ...
- TypeError: unorderable types: str() >= int()
1.问题描述 age=input('please enter your age') if age >=18: print('your age is',age) print('adult') el ...
- AndroidStudio意外崩溃,电脑重启,导致重启Find In Path...查找功能失效,搜索结果缺失
解决方案: <AndroidStudio意外崩溃,电脑重启,导致重启打开Androidstudio后所有的import都出错>
- SpringCloud Ribbon的分析
Spring Cloud Ribbon主要用于客户端的负载均衡.最基本的用法便是使用RestTemplate进行动态的负载均衡.我们只需要加入如下的配置便能完成客户端的负载均衡. @Configura ...
- C#3.0智能的编译器
智能的编译器 在C#3.0中,编译器变的越来越智能,我们不用提供给它完整的信息,仅需要提供必要的信息,编译器就可以进行推断为我们补全未提供的信息 自动实现的属性 在之前我们生成一个类时需要有一个字段, ...
- 初探Google Guava
Guava地址:https://github.com/google/guava 第一次接触我是在16年春github上,当时在找单机查缓存方法,google guava当初取名是因为JAVA的类库不好 ...
- 内核中 xxx_initcall 的调用过程分析
内核版本:linux-4.19 上一篇文章提到了这段代码: arch_initcall_sync(of_platform_default_populate_init); 它的功能是完成 device_ ...
- [C#] 使用 StackExchange.Redis 封装属于自己的 RedisHelper
使用 StackExchange.Redis 封装属于自己的 RedisHelper 目录 核心类 ConnectionMultiplexer 字符串(String) 哈希(Hash) 列表(List ...
- Java开发笔记(六十一)Lambda表达式
前面介绍了匿名内部类的简单用法,通过在sort方法中运用匿名内部类,不但能够简化代码数量,还能保持业务代码的连续性.只是匿名内部类的结构仍显啰嗦,虽然它省去了内部类的名称,但是花括号里面的方法定义代码 ...
- nodejs cookie与session
cookie.session cookie:在浏览器保存一些数据,每次请求都会带过来 *不安全.有限(4K) session:保存数据,保存在服务端 *安全.无限 ------------------ ...