luffy项目后端初始化

luffyapi:  --- 项目根目录

  manage.py  --- 执行脚本

  docs:  --- 文档目录(新建)

  logs:  --- 日志目录(新建)

  scripts:  --- 脚本目录(新建)

  media:  --- 媒体目录(新建)

  luffyapi:  --- 项目主应用目录

    urls:  --- 总路由

    wsgi:  --- 发布脚本

    apps:  --- 子应用目录(新建)

    libs:  --- 第三放库目录(新建)

    utils:  --- 子应用的公共组件目录(包,新建)

    settings:  --- 配置目录(包,新建)

      dev.py  --- 开发配置(新建)

      pro.py  --- 上线配置(新建)

一、初始化事项

  1、因为修改了配置文件路径

    ①manage.py中的:

      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings') =>

      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.dev')

    ②pycharm运行环境配置中加上:DJANGO_SETTINGS_MODULE=luffyapi.settings.dev。

    ③luffyapi.wsgi.py中的:

      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings')  =>

      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.pro')

  2、国际化,luffyapi.settings.dev.py中:

    ①LANGUAGE_CODE = 'en-us' => 'zh-hans'。

    ②TIME_ZONE = 'UTC' => 'Asia/shanghai'。

    ③USE_TZ = True => False。

  3、创建应用:

    ①<manage.py startapp app名>在哪个目录下执行,就会将app目录创建在该目录下。

    ②cd到luffyapi.apps目录下:python ....manage.py startapp user。

  4、环境变量相关:

    ①luffyapi.settings.dev.py中:  

# 现在的BASE_DIR不再是原本项目根目录,而变成了内部主应用目录luffyapi,不会自动加入环境变量
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 把现在的BASE_DIR加入到环境变量
sys.path.insert(0,BASE_DIR)
# 把apps目录也加入到环境变量
sys.path.insert(1,os.path.join(BASE_DIR,'apps'))

    ②右击luffyapi.apps:Mark Directory as => Sources Root。

二、数据库相关

  1、管理员登录数据库:mysql -uroot -p123。

  2、创建项目数据库:create database luffyapi。

  3、创建数据库用户,授予luffyapi库的所有权限,并允许远程(本地连接):

    grant all privileges on luffyapi.* to 'caoyu111'@'%' identified by 'caoyu333';

    grant all privileges on luffyapi.* to 'caoyu111'@'localhost' identified by 'caoyu333';

  4、立即刷新:flush privileges。

  5、luffyapi.settings.dev.py中:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'luffyapi',
        'USER': 'luffyapi',
        'PASSWORD': 'Luffy123?',  # 密码可以环境变量中引用 sys.path.get(键,默认值)
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'CHARSET': 'utf8'
    }
}
import pymysql

pymysql.install_as_MySQLdb()

  6、异常改源码:

# if version < (1, 3, 13):
#     raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

 三、媒体目录

  1、luffyapi.settings.dev.py中:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

  2、luffyapi.urls中:

from django.conf import settings
from django.views.static import serve
urlpatterns
= [ ... re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}) ]
原文地址:https://www.cnblogs.com/caoyu080202201/p/13324426.html