zoukankan      html  css  js  c++  java
  • 企业的web项目类型、企业项目开发流程、立项申请阶段、需求分析、导航菜单、轮播图、退出登录、登录注册、课程列表、创建虚拟环境、依赖包安装、创建项目、调整目录、创建代码版本git、日志配置、异常处理、创建数据库、

    ## 1.1 企业的web项目类型

    1. 商城

    1.1 B2C 直销商城 商家与会员直接交易 ( Business To Customer )

    1.2 B2B 批发商城 商家与商家直接交易

    1.3 B2B2C 购物平台 商家和会员在另一个商家提供的平台上面进行交易

    1.4 C2B 定制商城 会员向商家发起定制商品的需求,商家去完成。

    1.5 O2O 线上线下交易平台

    1.6 C2C 二手交易平台

    2. 门户网站[企业站和门户站]

    3. 社交网络

    4. 资讯论坛

    5. 内部系统

    6. 个人博客

    7. 内容收费站
    企业项目开发流程

     

     

    立项申请阶段
    立项其实就是对产品项目能不能做和怎么做,提出理论基础。大的互联网公司都有比较正规的立项流程。

    通常公司内部要研发一款软硬件的产品之前,都要经过市场评估和调研分析,产生一份`产品项目立项报告`给公司。
    产品项目立项报告一般包含以下内容:
    项目概述
    需求市场
    需求分析和项目建设的必要性
    业务分析
    总体建设方案
    项目风险和风险管理
    可行性分析阶段
    需求分析
    功能:导航菜单、轮播图、退出登录

     登录注册

    功能:用户登录、极验验证码、多条件登录、记住密码、短信发送、短信冷却倒计时、jwt认证

    课程列表
    功能:课程分类、课程列表、课程多条件筛选展示、课程分类展示、课程分页展示、课程章节课时展示、课程优惠策略

    课程详情
    功能:课程信息展示、视频播放、富文本编辑器
    购物车
    功能:购物车商品列表、添加商品、删除商品、勾选商品状态、商品结算、订单生成、唯一订单号生成

    商品结算
    功能:订单商品信息列表、订单信息展示、积分计算功能、优惠券策略、课程有效期计算、第三方支付平台接口

    购买成功

    个人中心
    功能列表:我的订单、订单状态改变

    视频播放
    功能:视频加密播放

    创建虚拟环境
    mkvirtualenv luffy/virtualenv luffy
    如果自己的开发机子中存在多个版本的python,则可以指定解析器的版本
    mkvirtualenv luffy -p python3

    创建虚拟环境: mkvirtualenv 虚拟环境名称
    创建虚拟环境(指定python版本): mkvirtualenv -p python3 虚拟环境名称
    查看所有虚拟环境: workon+2次tab键
    使用虚拟环境: workon 虚拟环境名称
    退出虚拟环境: deactivate
    删除虚拟环境(必须先退出虚拟环境内部才能删除当前虚拟环境):
    rmvirtualenv 虚拟环境名称

    其他相关命令:
    查看虚拟环境中安装的包: pip freeze 或者 pip list
    收集当前环境中安装的包及其版本: pip freeze > requirements.txt
    在部署项目的服务器中安装项目使用的模块: pip install -r requirements.txt

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

    • 创建虚拟环境需要联网

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

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

    依赖包安装

    pip install django

    pip install djangorestframework -i https://pypi.tuna.tsinghua.edu.cn/simple

    pip install PymySQL -i https://pypi.tuna.tsinghua.edu.cn/simple

    pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple

    pip install django-redis -i https://pypi.tuna.tsinghua.edu.cn/simple

    创建项目

    django-admin startproject luffy

    调整目录

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

    分不同环境进行项目配置

    开发者本地的环境、目录、数据库密码和线上的服务器都会不一样,所以我们的配置文件可以针对不同的系统分成多分.

    1. 在项目主应用下,创建一个settings的配置文件存储目录

    2. 根据线上线下两种情况分别创建2个配置文件 dev.py和prod.py

    3. 把原来项目主应用的 settings.py配置内容复制2份到dev.py和prod.py里面

    把原来的settings.py配置文件修改文件名或者删除

    创建代码版本

    cd进入到自己希望存储代码的目录路径,并创建本地仓库.git【pycharm直接打开终端就是项目根目录了。无须cd了】 新创建的本地仓库.git是个空仓库

    cd 目录路径
    git init

    配置用户名和邮箱

    git config --global user.name '用户名'
    git config --global user.email '邮箱地址'

    在git平台创建工程

    公司一般都会有自己的代码仓库,一般都是自己搭建,也有使用第三方提供代码管理平台。

    常用的代码管理平台:github、gitee(码云)

     

     

     

     

    上传队列

     commit file

     

     

     

     

    如果公司自己搭建的代码管理平台,gitlab框架

    克隆项目到本地

    注意:
    我们当前项目不需要这个步骤
    这个步骤是 当以后我们进入公司里面,参与人家已经在做的项目时,别人已经有仓库了,但是我们是新人加入项目中的,那么我们不需要在自己本地进行git init,直接git clone 复制别人的仓库代码

    git clone 仓库地址
    注意,如果当前目录下出现git仓库同名目录时,会克隆失败。
    创建并切换分支到dev

    # git branch dev # 创建本地分支dev,dev是自定义
    # git checkout dev # 切换本地分支代码
    git checkout -b dev # 这里是上面两句代码的简写
    git提交

    git add 代码目录 # 添加代码到上传队列
    git status # 查看当前项目的版本状态
    git commit -m '添加项目代码' # 提交代码到本地仓库, -m 表示本次提交的描述
    推送到远端
    git push origin dev:dev
    如果推送代码,出现以下提示: git pull ....,则表示当前本地的代码和线上的代码版本不同.

    1. 把线上的代码执行以下命令,拉取到本地,进行同步
    git pull

    2. 根据提示,移除多余的冲突的文件,也可以删除.
    完成这些步骤以后,再次add,commit,push即可.
    把上面创建好的本地项目提交到gitee码云上面

    # .表示当前目录下所有的文件或目录提交到上传队列[上传队列也叫"暂存区"]
    git add .

    # 把本地上传队列的代码提交到本地仓库
    git commit -m "项目初始化搭建"

    # 给本地的git版本控制软件设置项目的远程仓库地址
    git remote add origin https://gitee.com/mooluo/luffyproject.git

    # 提交代码给远程仓库
    git push -u origin master

    扩展:
    1. 通过 git status 可以查看当前项目的代码版本状态
    2. 通过 git reflog 可以查看代码版本日志[简单格式]
    3. 通过 git log 可以查看代码版本日志[详细格式]

    git rm 文件 # 删除单个文件
    git rm -rf 目录 # 递归删除目录

    # 以下操作建议通过ubuntu的终端来完成,不要使用pycharm提供,否则删除.idea还会继续生成。
    git rm -rf .idea
    git rm db.sqlite3
    # 注意,上面的操作只是从项目的源代码中删除,但是git是不知情的,所以我们需要同步。
    git add .
    git commit -m "删除不必要的文件或目录"
    git push -u origin master
    使用.gitignore把一些垃圾文件过滤掉。

    vim .gitignore

    ./idea
    ./idea/*
    ./git
    ./db.sqlite3

    日志配置

    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(os.path.dirname(BASE_DIR), "logs/luffy.log"),
    'maxBytes': 300 * 1024 * 1024,
    'backupCount': 10,
    'formatter': 'verbose'
    },
    },
    'loggers': {
    'django': {
    'handlers': ['console', 'file'],
    'propagate': True,
    },
    }
    }

    异常处理

    新建utils/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',
    }

    进入数据库:

    mysql -uroot -p

    创建数据库

    create database luffycity default charset=utf8;
    为当前项目创建数据库用户[这个用户只能看到这个数据库]

    create user luffy_user identified by 'luffy';
    grant all privileges on luffycity.* to 'luffy_user'@'%';
    flush privileges;

    配置数据库连接

    打开settings/dev.py文件,并配置

    DATABASES = {
    "default": {
    "ENGINE": "django.db.backends.mysql",
    "HOST": "127.0.a0.1",
    "PORT": 3306,
    "USER": "luffy_user",
    "PASSWORD": "luffy",
    "NAME": "luffycity",
    }
    }

    在项目主模块的 __init__.py中导入pymysql

    import pymysql

    pymysql.install_as_MySQLdb()

  • 相关阅读:
    使用PHP类库PHPqrCode生成二维码
    ABAP报表中建立过滤器,并相互切换
    MM定价计算方案确定详细图解
    MIGO 屏幕增强
    SE14 激活表时提示进程正在运行
    供应商寄售
    屏蔽VA01的TA類型的銷售部門和銷售組
    屏蔽標準TCODE上的一些字段的顯示、隱藏或者強制輸入(轉)
    采购订单流程
    SAP 中如何修改透明表数据
  • 原文地址:https://www.cnblogs.com/zhang-da/p/12452436.html
Copyright © 2011-2022 走看看