目录
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>