路飞项目之项目前期准备

目录

1 重构项目目录,以下面目录为例

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

2 配置开发环境

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

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

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

4.如果修改1后还是启动不了,需要修改启动配置,见下图

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

2.1、先创建到如下目录,其中dev.py和pro.py先拷贝原先的settings.py,之后进行修改

 2.2、删除原先settings.py后,启动项目会报错

原因:因为manage.py中指定了路径

所以manage.py内容要改

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

注意,如果还是起不来,要做如下配置

 修改后:

补充:如果项目上线,走的不是manage.py---》走的是wsgi.py,所以,如果项目上线,wsgi.py也要改

2.3 国际化配置

开发阶段修改dev.py

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/shanghai'

USE_TZ = False

2.4 创建app,startapp在哪个目录执行,app就创建在哪个目录

在pycharm的Terminal终端执行

(luffy) E:django_projectluffyluffyapi>cd luffyapi

(luffy) E:django_projectluffyluffyapiluffyapi>cd apps

(luffy) E:django_projectluffyluffyapiluffyapiapps>python ../../manage.py startapp user

(luffy) E:django_projectluffyluffyapiluffyapiapps>python ../../manage.py startapp home

(luffy) E:django_projectluffyluffyapiluffyapiapps>

建完后,项目目录

2.5 注册app

在dev.py中进行如下配置

# 环境变量操作:小luffyapiBASE_DIR与apps文件夹都要添加到环境变量
import sys
sys.path.insert(0, BASE_DIR)
APPS_DIR = os.path.join(BASE_DIR, 'apps')
sys.path.insert(1, APPS_DIR)

此时就可以注册app了,因为apps目录已经被加到环境变量了

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user'   # 注册
]

 注意:此时进行导入没问题,也可以正常使用,但是pycharm飘红,做下面操作就不会飘红了,这个操作的文件夹必须在环境变量中的

3 数据库配置

创建数据库

"""
1.管理员连接数据库
>: mysql -uroot -proot

2.创建数据库
>: create database luffyapi charset='utf8';

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

# 5.7往后的版本
>: select user,host,authentication_string from mysql.user;
"""

为指定数据库配置指定账户

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

1.配置任意ip都可以连入数据库的账户,通过luffy用户和密码可以对luffyapi数据库进行所有操作
>: grant all privileges on luffyapi.* to 'luffy'@'%' identified by 'Luffy123?';

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

3.刷新一下权限
>: flush privileges;

只能操作luffy数据库的账户
账号:luffy
密码:Luffy123?
"""

配置文件配置

# 数据库配置   dev.py配置文件中
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'luffyapi',
        'USER': 'luffy',
        'PASSWORD': 'Luffy123?',
        'HOST': '127.0.0.1',
        'PORT': 3306
    }
}

import pymysql
pymysql.install_as_MySQLdb()

4 User表配置

# 用户要基于auth的user表,必须在数据库迁移命令之前操作好,后期如果再做,会出错
    -把所有app下的迁移文件,全删除
    -admin,auth app下的迁移文件删除
    -删库(数据一定要导出来),重新迁移  

user/models.py

from django.db import models

# Create your models here.
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    telephone = models.CharField(max_length=11,verbose_name="手机号")
    icon = models.ImageField(upload_to="icon",default="icon/default.png")

dev.py

MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')  #现在的BASEDIR是luffyapi下的luffyapi

AUTH_USER_MODEL='user.User

luffyapi/urls.py,暴露media接口

from django.contrib import admin
from django.urls import path,re_path
from django.views.static import serve    # 暴露接口使用
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    # 暴露后端指定文件夹资源,这样就会把media暴露给外界
    re_path(r'^media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT})
]

迁移数据库

# 先到manage.py存在的目录
(luffy) E:django_projectluffyluffyapiluffyapiapps>cd ..

(luffy) E:django_projectluffyluffyapiluffyapi>cd ..

(luffy) E:django_projectluffyluffyapi>python manage.py makemigrations

(luffy) E:django_projectluffyluffyapi>python manage.py migrate

(luffy) E:django_projectluffyluffyapi>

5 Vue前端搭建

  • 安装node
#1 安装node,官网下载,一路下一步
    node -v
    v10.16.3
  • 安装模块
#2 安装模块
    # npm install 模块名 #npm比较慢,用淘宝的cnpm来替换npm
    # npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 创建vue的工程(需要一个vue脚手架),vue3.0
#3 安装脚手架
# cnpm install -g @vue/cli

如果出问题执行如下,重新走2,3

# npm cache clean --force
  • 安装完验证:命令行下敲vue会有提示
  • 创建vue项目(vue3.0创建方式),在想要生成这个项目目录的目录下运行
# vue create luffycity

 选择Manually,蓝色表示选中

 选中如图选项,上下键移动,空格键选中

 选择Y

选择In package.json

 是否保存刚刚的配置,方便以后使用,选N

 等它运行完

 6 使用pycharm打开vue,并配置像启动django那样启动vue

如果vue文件未变色,安装vue.js插件

 7 vue目录介绍

public
    -favicon.ico   # 
    -index.html    #整个项目的单页面
src
    -assets  #静态文件,js,css,img
    -components # 小组件,头部组件,尾部组件
    -router     # 路由相关
    -store      # vuex相关,状态管理器,临时存储数据的地方
    -views      # 页面组件
    -App.vue    # 根组件
    -main.js    # 配置文件(跟django的setting一样)
    
    
    
#任何一个组件都有三部分
    <template>
        #html相关
    </template>
    <style>
        # css相关
    </style>

    <script>
        # js相关
    </script>
原文地址:https://www.cnblogs.com/baicai37/p/13324571.html