路飞学城01--项目后端搭建和配置

1.企业级项目类型

商城
    B2C 直销商城 商家与会员直接交易 ( Business To Customer ) # 京东
    B2B 批发商城 商家与商家直接交易  # 1688
    B2B2C 购物平台 商家和会员在另一个商家提供的平台上面进行交易  # 淘宝、拼多多
    C2B 定制商城 会员向商家发起定制商品的需求,商家去完成。
    O2O 线上线下交易平台  # 叮咚买菜
    C2C 二手交易平台  # 转转,咸鱼
    
门户网站[企业站和门户站]  (php居多)

社交网络:
    -app, 脉脉,
    
资讯论坛
    -今日头条
    
内部系统 (python主要)
    -OA、CRM:客户关系管理,ERP:python框架(odoo)  rbca权限控制
    -自动化运维
    -自动化测试平台...
    
个人博客

内容收费站
    -思否
    -掘金
    -简书

2.企业项目开发流程

# 原型图
    设计工具:墨刀,蓝湖
# ui切图
	
python后端工程师 涉及到的项目开发部分:
    技术选型,架构设计,数据库设计,分任务开发(自己)、联调(联合调试)

# 项目管理工具:jira,禅道(php开源的)

# 项目开发模式
    -瀑布开发模式 
    	全部功能开发完后,再集中联调,最后整个项目一起上线
        
    -敏捷开发 
    	功能模块化划分,部分功能开发完,就马上联调,上线展示    
    
 
# 面试:
# 1.你说说项目开发流程?
    每天开发的需求,就根据公司内部的项目管理平台 jira或禅道(php开源的)上写的,
    有不懂的或没写明白的需求,就问下我的领导,然后就开发,完了就提交到git,
    测试人员就测试代码,完了有问题就在改一改,没有就写完了这个开发需求。
    
# 2.一个(spring、功能模块、独立项目)周期多久?
    一个周

3.需求分析

1 首页功能
    -轮播图
    
2 用户功能
    -多方式登录
    -手机验证码注册/登录
    -发送验证码接口
    
3 课程功能
    -查询所有课程
    -过滤功能
    
4 课程详情
    -详情展示
    -视频托管和播放
    
5 购买功能
    -支付宝支付
    
6 搜索功能

4.pip换源

# pip install django    国外地址,速度慢
# pip install django -i http://pypi.douban.com/simple/

# 永久配置安装源
    统一修改,以后都走豆瓣源
    -1 去'C:\Users\oldboy\AppData\Roaming'路径,
    	或在地址栏输入%APPDATA%,敲回车
    
    -2 新建 pip 文件夹并在文件夹
    -3 新增 pip.ini 配置文件内容
    -4 写入
        [global]
        index-url = https://pypi.douban.com/simple/
        [install]
        use-mirrors =true
        mirrors =http://pypi.douban.com/simple/
        trusted-host =pypi.douban.com

# 补充
    -可能自己写了模块(包),想传到pypi上,给别人用
    	自己百度
    -https://pypi.python.org/simple
                
# pycharm中
    解释器--管理仓库--添加源地址 

5.虚拟环境搭建

# 作用
1、使不同应用开发环境相互独立
2、环境升级不影响其他应用,也不会影响全局的python环境
3、防止出现包管理混乱及包版本冲突

# 直接使用pycharm创建虚拟环境

# 使用命令创建虚拟环境 (win系统)
	

5.1使用命令创建虚拟环境 (win系统)

-1 安装两个命令
    pip3 install virtualenv
    pip3 install virtualenvwrapper-win # win系统才装
    pip3 install virtualenvwrapper    # mac和linux
        
-2 配置虚拟环境管理器工作目录
    -去环境变量中加:WORKON_HOME: D:\Virtualenvs
            
    -同步配置信息:python安装路径的scripts文件下执行virtualenvwrapper.bat

-3 去D盘新建一个文件夹Virtualenvs

-4 命令操作(cmd中)
    # 1、创建虚拟环境
    1.1 选取默认Python环境创建虚拟环境:
        mkvirtualenv 虚拟环境名称
    1.2 基于某Python环境创建虚拟环境:
        mkvirtualenv -p python2.7 虚拟环境名称
        mkvirtualenv -p python3.6 虚拟环境名称
       # 创建并进入:以后安装模块就安装在虚拟环境里了

    # 2、查看已有的虚拟环境
        workon

    # 3、使用某个虚拟环境
        workon 虚拟环境名称

    # 4、退出当前虚拟环境
        deactivate

    # 5、删除虚拟环境(删除当前虚拟环境要先退出)
        # 去相应的文件夹下删除文件夹即可
        rmvirtualenv 虚拟环境名称

    # 6、进入|退出 该虚拟环境的Python环境
        python | exit()

    # 7、为虚拟环境安装模块
        pip或pip3 install 模块名

-5 在pycharm中使用
    不要在pycharm中选择虚拟环境了,选择真实环境的 虚拟环境的解释器

5.2使用命令创建虚拟环境 (mac和linux)

6.luffy后台配置

# 创建luffy虚拟环境,安装django
    mkvirtualenv -p python3 luffy
    pip install django==2.2.2
    
# 使用pycharm创建项目
    选择luffy虚拟环境的解释器
        
        
# 重构项目目录
    luffy_api  # 项目名字
        -luffy_api  # 小路飞
            -apps     # 所有app
            	-user  # user应用
                
            -settings  # 配置文件存放路径 (一般是两套配置文件:开发版和上线版)
            	-dev.py  # 开发版
                -pro.py  # 上线版

            -utils    # 工具方法 文件夹
            -libs     # 第三方库 文件夹
            -urls.py  # 根路径
            -wsgi.py  # 上线使用  (开发阶段使用 wsgiref,上线使用uwsgi)

       -manage.py     # 开发阶段项目入口 (开发阶段使用 wsgiref)
       -logs          # 项目运行时/开发时日志目录 - 包
       -scripts       # 项目开发时测试脚本文件 
     
# 创建应用到apps文件中 (startapp在哪执行,就把app创建在哪)
    # 1.来到apps路径下  
        cd luffy_api
        cd apps
    # 2.在apps下创建应用
	python ../../manage.py startapp user
    
    
# 注册应用 
    1.在配置文件中 写应用的调整后的路径
        INSTALLED_APPS = [
            'luffy_api.apps.user',
        ]
    
    2.或直接写app名字
    # 在配置文件中 
    # 2.1 先把apps路径和小路飞(就是当前的BASE_DIR),加入到环境变量 (注:在注册应用的代码之前添加)
        import sys
        sys.path.append(BASE_DIR)
        sys.path.append(os.path.join(BASE_DIR,'apps'))
        
    # 2.2 再注册应用,写入应用名 
        INSTALLED_APPS = [
        	'user',
        ]
    
    
# 项目运行,配置路径得正确--》修改配置文件路径
    # 1.命令行 启动项目(python manage.py runserver)
    在manage.py中修改
    	# 第二个参数:修改为正确的配置文件 (luffy_api.settings.dev)
    	os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.dev')
        
    # 2.pycharm点击启动项目
    在解释器配置中修改
    	环境-->环境变量:
        # 第二个参数:修改为正确的配置文件 (luffy_api.settings.dev)
    	PYTHONUNBUFFERED=1;DJANGO_SETTINGS_MODULE=luffy_api.settings.dev

    # 3.项目上线,走的不是manage.py,而是wsgi.py
    在wsgi.py中修改
    	os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy_api.settings.pro')
            
            
# 模块导入时,以最短路径导入,防止模块循环导入的问题

7.luffy数据库搭建

# 1.在配置文件中数据库配置
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'luffy',  # 数据库名字
        'HOST': '127.0.0.1',  # 数据库的地址
        'PORT': 3306,
        'USER': 'luffynew',  # luffy用户,数据的用户 
        	# 一般:一个项目,一个库,一个用户
        'PASSWORD': 'Luffy123?'  # luffy用户密码
    }
        
# 2.创建luffy库
    mysql -h127.0.0.1 -P3306 -uroot -p  # 连接数据库
    create database luffy default charset=utf8;  # 创建数据库
    
# 3.查看用户
    select user,host,password from mysql.user;
    # 5.7往后的版本
    select user,host,authentication_string from mysql.user;

# 4.创建并授权用户 (用管理员账户创建)
    只能操作luffy数据库的账户
    账号:luffynew
    密码:Luffy123?

    # 设置权限账号密码
    授权账号命令:grant 权限(create, update) on 库.表 to '账号'@'host' identified by '密码'

    # 1.配置任意ip都可以连入数据库的账户 ( '%' 表示所有ip都可访问)
    grant all privileges on luffy.* to 'luffynew'@'%' identified by 'Luffy123?';

    # 2.由于数据库版本的问题,可能本地还连接不上,就给本地用户单独配置
    grant all privileges on luffy.* to 'luffynew'@'localhost' identified by 'Luffy123?';

    # 3.刷新一下权限
    flush privileges; 

# 5.django要操作mysql,需要使用pymysql
    django操作mysql,底层用的mysqldb模块,在python2可以用,3.x不维护了
    
    1.基于mysqldb做了pymysql 既支持python2,又支持python3,django2.0.7以后就不支持pymysql,需要改源码
    	1.1 在应用的 __init__下:
            import pymysql
            pymsql.install_as_MySQLdb() # 猴子补丁动态替换
        1.2 mysql.py 中 由 decode 改为 encode

    2.基于mysqldb做了mysqlclient 既支持python2,又支持python3,无缝支持django,这个模块可能装不上
    	pip install mysqlclient

        失败:就先下载whl包,通过whl包来安装
        pip install mysqlclient-1.4.6-cp36-cp36m-win_amd64.whl

安装mysqlclient失败的解决方法

8.user模块User表

# 1.新建app-user中,去models中写
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    mobile = models.CharField(max_length=11, unique=True)  # 扩写了手机号,唯一
    icon = models.ImageField(upload_to='icon', default='icon/default.png')  # 需要安装pillow模块

    class Meta:
        db_table = 'luffy_user'  # 修改表名

        verbose_name = '用户表'
        verbose_name_plural = verbose_name  # 在admin中显示表名为用户表
                
# 2.配置文件中配置
    AUTH_USER_MODEL='user.user' # app名字.表名
    
    MEDIA_URL='/media/'
    MEDIA_ROOT=os.path.join(BASE_DIR,'media')  # 现在的BASEDIR是luffyapi下的luffyapi
     
# 3.安装pillow模块

# 4.迁移(两条命令)


# 注意:
    扩写auth的user表,一定要在修改完用户表后再迁移
    如果你先迁移了
    	1 删库(先备份,再删除生成的所有表)
        2 删除迁移文件(app迁移文件)
        3 删除admin和auth的迁移文件
        4 再重新做
posted @ 2022-01-11 16:54  Edmond辉仔  阅读(159)  评论(0编辑  收藏  举报