博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目搭建之虚拟环境和项目配置
阅读量:5169 次
发布时间:2019-06-13

本文共 4475 字,大约阅读时间需要 14 分钟。

一.虚拟环境virtualenv

  如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令,

在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.而公司里面往往会

存在多个项目的情况,所以需要使用虚拟环境,把当前项目所需要用到的模块及其版本进行隔离包装到一个虚拟环境中使用。

  1.虚拟环境的安装

pip install virtualenv

pip install virtualenv-clone
pip install virtualenvwrapper
pip install virtualenvwrapper-win

#以上四步依次安装下来

  2. 常用命令

创建虚拟环境:                mkvirtualenv 虚拟环境名称 创建虚拟环境(指定python版本): mkvirtualenv -p python 虚拟环境名称 查看所有虚拟环境:            workon+2次tab键 使用虚拟环境:               workon 虚拟环境名称 退出虚拟环境:               deactivate 删除虚拟环境(必须先退出虚拟环境内部才能删除当前虚拟环境):                                rmvirtualenv 虚拟环境名称    其他相关命令:查看虚拟环境中安装的包:              pip freeze  或者 pip list收集当前环境中安装的包及其版本:       pip freeze > requirements.txt在部署项目的服务器中安装项目使用的模块: pip install -r requirements.txt

  

提示:

  • 虚拟环境只会管理环境内部的模块和python解析器,对于源代码是毫无关系

  • 创建虚拟环境需要联网

  • 创建成功后, 会自动工作在这个虚拟环境上

  • 工作在虚拟环境上, 提示符最前面会出现 “(虚拟环境名称)”

 

二.搭建项目之虚拟环境配置

  1.进入虚拟环境

workon 虚拟环境名称
    
 

  2.在虚拟环境中安装我们需要的模块

pip install djangopip install PymySQLpip install Pillowpip install djangorestframework

  3.创建django项目

1.先进入项目要保存的目录 2.django-admin startproject luffy   
    
#注意:最好带虚拟环境

   4.打开项目,为项目其配置环境

1.找到设置   
      
2.为其配置解释器(选择后面的add local来选择虚拟环境中的解释器,而不再是系统中安装的python解释器了)   
         
3.选择existing enviroment(选择已存在的环境)     
      
4.第3步的...点击之后会跳出窗口,我们再去选择我们锁需要的虚拟环境中的python解释器     
        
5.回到第一步,配置我们新增的解释器为当前项目的解释器     
    
 

 

三.项目配置

  1. 目录结构

├── docs           # 项目相关资料保存目录├── logs           # 项目运行时/开发时日志目录├── manage.py├── luffy         # 开发时的代码保存│   ├── apps       # 开发者的代码保存目录,以模块[子应用]为目录保存│   ├── libs       # 第三方类库的保存目录│   ├── settings.py│   ├── urls.py│   ├── utils      # 多个模块[子应用]的公共函数类库└── scripts        # 保存项目运营时的脚本文件

  2.创建数据库

#创建数据库 create database luffycity default charset=utf8; #为当前项目创建数据库用户和密码[这个用户只能看到这个数据库] #把数据库权限开放给这个用户 #刷新数据库

  create user luffy_user identified by 'luffy';

  grant all privileges on luffycity.* to 'luffy_user'@'%';
  flush privileges;

 

 

注意:这边 有个注意点就是:

  如果你的mysql之前没有配置过,直接通过mysql就可以直接进入的情况下,你就需要把这种情况禁止,否则沪报错:

  处理:

    mysql>use mysql;

    mysql>delete from user where user=”;

    mysql>flush privileges; (必须的)

   3.配置连接数据库

    打开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 pymysqlpymysql.install_as_MySQLdb()

  4.日志配置

    在settings.py追加

LOGGING = {
  #日志信息 'version': 1, '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', 'filename': os.path.join(BASE_DIR, "logs/lufei.log"), 'maxBytes': 300 * 1024 * 1024, #300MB 'backupCount': 10, #最多是个文件 'formatter': 'verbose' }, }, 'loggers': { 'django': { 'handlers': ['console', 'file'], 'propagate': True, }, }}

   5.异常处理

      新建utils/exceptions.py(看第一点的目录结构)

from rest_framework.views import exception_handlerfrom django.db import DatabaseErrorfrom rest_framework.response import Responsefrom rest_framework import statusimport logginglogger = 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':        'lufei.utils.exceptions.custom_exception_handler',}

   6.创建主页应用(把应用都创建在apps中)

python ../../manage.py startapp home   
 

 

转载于:https://www.cnblogs.com/tjp40922/p/10573279.html

你可能感兴趣的文章
lr_start_transaction/lr_end_transaction事物组合
查看>>
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
ubuntu的home目录下,Desktop等目录消失不见
查看>>
建立,查询二叉树 hdu 5444
查看>>
[Spring框架]Spring 事务管理基础入门总结.
查看>>
2017.3.24上午
查看>>
Python-常用模块及简单的案列
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>
基本算法概论
查看>>
jquery动态移除/增加onclick属性详解
查看>>
JavaScript---Promise
查看>>
暖暖的感动
查看>>
Java中的日期和时间
查看>>
Django基于admin的stark组件创建(一)
查看>>
C. Tanya and Toys_模拟
查看>>
springboot jar包运行中获取资源文件
查看>>
基于FPGA实现的高速串行交换模块实现方法研究
查看>>
Java Scala获取所有注解的类信息
查看>>
delphi ,安装插件
查看>>