• 路飞学城项目之后端配置


    先搭建基于python3.6解释器的虚拟环境,django用2以上版本,再装一些基本的依赖

    >: pip install django
    >: pip install djangorestframework
    >: pip install pymysql

    命令行装:

    前面这个(luufy)就是说进入了luffy虚拟环境,然后直接pip....装就完事了

    pycharm装,先用pycharm进入luffy虚拟环境,底部栏点击Termibal,在里面pip....

    创建项目

    随便找个地方建一个文件夹luffy(为了方便,我这儿直接建在桌面)

    这个文件夹就是路飞项目了,在里面建一个后端django项目luffyapi和一个前端vue项目luffycity

    """
    前提:在目标目录新建luffy文件夹
    >: cd 建立的luffy文件夹
    >: django-admin startproject luffyapi

    开发:用pycharm打开项目,并选择提前备好的虚拟环境
    """

    后端配置

    重构项目目录

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

    配置开发环境

     1.修改 wsgi.py 与 manage.py 两个文件:
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.dev')

    这样改了后之后设置就不会走原来settings.py,而是走我们建的settings文件夹下的dev.py


    2.将settings.py删除或改名,内容拷贝到settings/dev.py中

    3.修改dev.py文件内容
    LANGUAGE_CODE = 'zh-hans'
    TIME_ZONE = 'Asia/Shanghai'

    4.修改启动配置:见插图


    5.在任何一个__init__.pu文件中测试默认配置文件是否是dev.py文件
    from django.conf import settings
    print(settings)

    配置日志

    # 官网:https://docs.djangoproject.com
    # 中文loggin配置:https://docs.djangoproject.com/zh-hans/2.2/topics/logging/
    # 在项目的 dev.py 中配置 Django 项目的log日志,那Django自己出现的打印记录不仅可以输出到控制台,还可以记录到日志文件,当项目上线记录日志时及其重要的

    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': {
                # 实际开发建议使用WARNING
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                # 日志位置,日志文件名,日志保存目录必须手动创建,注:这里的文件路径要注意BASE_DIR
                'filename': os.path.join(os.path.dirname(BASE_DIR), "logs/luffy.log"),
                # 日志文件的最大值,这里我们设置300M
                'maxBytes': 300 * 1024 * 1024,
                # 日志文件的数量,设置最大日志数量为10
                'backupCount': 10,
                # 日志格式:详细格式
                'formatter': 'verbose',
                'encoding': 'utf-8'
            },
        },
        # 日志对象
        'loggers': {
            'django': {
                'handlers': ['console', 'file'],
                'propagate': True, # 是否让日志信息继续冒泡给其他的日志处理系统
            },
        }
    }

    数据库配置

    创建数据库

    """
    1.管理员连接数据库


    2.创建数据库
    >: create database luffy default charset=utf8;


    3.以管理员身份登录数据库
    >: mysql -uroot -p123


    4.查看用户
    >: select user,host,password from mysql.user;


    5.设置权限账号密码
    # 授权账号命令:grant 权限(create, update) on 库.表 to '账号'@'host' identified by '密码'
    >: grant all privileges on luffy.* to 'luffy'@'%' identified by 'luffy';
    # 要是本机连mysql连不上,再添加localhost访问权限,本机就可以登录了(5.7版本%不包括本机)
    >: grant all privileges on luffy.* to 'luffy'@'localhost' identified by 'luffy';
    # 设置完有权限限制的账号后一定要刷新权限,如果没刷新权限,该终端无法被通知
    >: flush privileges;  


    6.退出管理员,用账号 luffy 密码 luffy 登入开发
    >: exit
    >: mysql -uluffy -pluffy


    # 后台项目进行数据库配置
    7.luffyapi/settings/dev.py配置
    DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.mysql",
            "HOST": "127.0.0.1",
            "PORT": 3306,
            "USER": "luffy",
            "PASSWORD": "luffy",
            "NAME": "luffy",
        }
    }


    6.luffypai/__init__.py
    import pymysql
    pymysql.install_as_MySQLdb()


    7.运行会出现Django与pymysql版本兼容问题:见两张插图

    home应用的创建

    注册drf、弃用jdango的csrf

    # dev.py
    INSTALLED_APPS = [
       # ...
       'rest_framework',
    ]

    MIDDLEWARE = [
       'django.middleware.security.SecurityMiddleware',
       'django.contrib.sessions.middleware.SessionMiddleware',
       'django.middleware.common.CommonMiddleware',
       # 'django.middleware.csrf.CsrfViewMiddleware',
       'django.contrib.auth.middleware.AuthenticationMiddleware',
       'django.contrib.messages.middleware.MessageMiddleware',
       'django.middleware.clickjacking.XFrameOptionsMiddleware',
       'corsheaders.middleware.CorsMiddleware',
    ]

    创建 home 应用

    """
    1.前往apps目录下创建app:cd luffyapi/apps
    2.创建app:python ../../manage.py startapp home
    """

    配置 apps 到环境变量并注册home应用

    # dev.py
    import os
    import sys
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.append(os.path.join(BASE_DIR, 'apps'))

    # 注:不添加环境变量,注册 应用 很麻烦,会出现 应用 找不到

    INSTALLED_APPS = [
       # ...
       'home'
    ]

    注册子路由

    就是路由分发

    # 主路由:urls.py
    from django.urls import include
    urlpatterns = [
    # ...
       path('home/', include('home.urls')),
    ]

    # 子路由:home/urls.py
    from django.urls import path, re_path

    urlpatterns = [

       ]
    ]


    静态目录

    # dev.py 配置
    # 1.访问静态文件的url地址前缀
    STATIC_URL = '/static/'

    # 2. 设置django的静态文件目录
    STATICFILES_DIRS = [
       os.path.join(BASE_DIR, "static")
    ]

    # 静态目录创建
    # 3.在luffyapi/luffyapi中创建static目录(谁是项目根目录就在那个文件夹下创建)

    媒体目录

    # dev.py配置
    # 1.访问上传文件的url地址前缀
    MEDIA_URL = "/media/"

    # 2.项目中存储上传文件的根目录
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")

    # 媒体目录创建
    # 3.在luffyapi/luffyapi中创建media目录(谁是项目根目录就在那个文件夹下创建)

    # 配置路由
    from django.urls import re_path
    from django.views.static import serve
    from django.conf import settings
    urlpatterns = [
       re_path(r'media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}),
    ]



  • 相关阅读:
    python 监听文件夹下的文件,将文本内容写入kafka,支持断电续传 (docker 发布)
    python监控目录和文件变化
    Python 单例
    Python 面向对象 继承
    Python 面向对象 多态
    Python 面向对象 类属性和类方法
    Python 基础2
    Python 面向对象
    【bird-front】全自动数据表格组件bird-grid
    【bird-java】bird-java系列文章汇总
  • 原文地址:https://www.cnblogs.com/tuanzibuku/p/11215228.html
Copyright © 2020-2023  润新知