内容回顾
# 企业软件类型-->内部系统,给客户定制的系统
# 企业软件开发流程--》你平时工作开发流程是什么
# 软件开发模式
-瀑布
-敏捷开发
# pip换源
-pip install -i 源的地址 包名
-pip install -r requirements.txt 一会讲
npm install 类似于 pip install -r requirements.txt
-拿到一个新项目--》本地跑起来
-python解释器版本---》统一起来
-装第三方模块:在他机器上装不上(win:好多模块装不了)---》单独找出装不上的模块,单独解决
-配置数据库
-本地运行
-用户家路径 新建 pip 文件--->pip.ini --->配置源地址
-有时候,装不上模块---》豆瓣源可能有的模块不是最新--->换个源再装 -i
# 虚拟环境
-解决同一个机器上有多个项目,多个项目使用的模块版本不一致的问题
-虚拟环境来解决这个问题
-每一个项目有一个虚拟环境,自己的虚拟环境装自己的模块,系统的解释器(不装模块)
-pycharm中如何创建---》注意再装模块,确认好装在哪里了 pip
-以后要清楚 python命令和pip命令指的是谁---》重命名
-环境变量
-用户环境变量:登陆用户
-系统环境变量:所有使用
-在任意路径执行命令能够找到---》win下xx.exe或者xx.bat mac和linux下 xx或者xx.sh
-敲命令,查找路径,先在自己路径下找,用户环境变量的path中找,系统环境变量的path中
-装python解释器,任意路径下执行python,pip 能执行---》自动把python解释器路径和解释器路径下的scripts文件夹加入到了环境变量
-mac,linux:用户环境变量(用户家路径下)和系统环境变量
-win下
-安装两个模块
-配置虚拟环境创建路径:workonhome=D:\vir
-创建虚拟环境,建在这个目录下了
-mac,linux下
-安装两个模块
-virtualenvwrapper.sh 放到环境变量
-配置环境变量:用户环境变量 ~/.bash_profile
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
-虚拟环境的创建,查看,删除,进入,退出命令
-用户和权限
-linux :root,普通用户
-mac: root,你的名字用户,有些文件它操作不了--->sudo
-win: 通常情况,默认登陆用户admin,你的名字的用户权限低
# 后端项目创建---》目录调整
-多套配置文件:开发,上线环境不一样--》manage.py,wsgi.py
-app都放在apps路径下下,但是注册app还是以app名字注册--》把apps路径加入到环境变量
-把BASE_DIR加入到环境变量
-创建了几个包(文件夹),分别存放不通的代码
-python ../../manage.py startapp app名字
# 后端记录日志
-把Log大字典复制到配置文件中
-logging.py --->生成一个logger对象
-以后写日志的时候,把logger对象导入直接用即可---》日志写到控制台,写到文件中
# 处理全局异常
-加入日志记录
# 导出项目依赖模块和安装项目依赖模块
-第三方模块---》导出来---》项目路径下--》requirements.txt
-第三方模块名字和版本
pip freeze >requirements.txt
-pip3 install -r requirements.txt # 文件中所有模块装上
内容详情
1 二次封装Response
# drf有个Response类
-data=None, {'status':100,'msg':'成功','token':asedfasfd3a21}
-status=None,
-template_name=None,
-headers=None,
-exception=False,
-content_type=None
2 后台数据库配置
# 使用mysql---》创建一个库(手动)--》库名:luffy
# 项目配置文件中,连接这个数据库
### 创建数据库,并配置
-create database luffy default charset=utf8;
### 给数据库创建一个lqz用户,它只能操作luffy库---》万一你的lqz用户密码泄露了--》
# 查看用户
# 5.7之前版本
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 '密码'
grant all privileges on luffy.* to 'lqz'@'%' identified by 'Luffy123?';
grant all privileges on luffy.* to 'lqz'@'localhost' identified by 'Luffy123?';
# mysql -h 127.0.0.1 -P 3306 -uroot -p
# mysql -uroot -p 有区别,如果在本地连接,使用这个,速度会快
# 刷新权限
flush privileges;
## 项目配置文件加入
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'luffy', # 数据库名字
'USER': 'lqz', # 用户名
'PASSWORD': 'Luffy123?',
'HOST': 'localhost',
'PORT': 3306
}
### django操作mysql
-模式使用MysqlDB来操作---》MysqlDB在python3.x以后不存在了
-使用pymysql替换---》django2.0.7版本及以上,如果使用pymysql替换,需要改django源码
### 关于pymysql和mysqlclient的选择
# 这两句话,只要执行即可,放在那里都行---》只要django执行,所有py文件中顶格写的代码都会执行
# 作用是?猴子补丁,动态替换 --->python一切皆对象,可以动态替换对象
# 如果该源码,后期只要使用django,都要改它的源码
# 所以咱们换另一个操作mysql的模块,mysqlclient---》MysqlDB的3版本--》有可能装不上--》win上看人品,实在装不上用whl文件装 linux上有不同解决方案
# http://www.liuqingzheng.top/python/%E5%85%B6%E4%BB%96/01-%E5%90%84%E4%B8%BB%E6%B5%81Linux%E7%B3%BB%E7%BB%9F%E8%A7%A3%E5%86%B3pip%E5%AE%89%E8%A3%85mysqlclient%E6%8A%A5%E9%94%99/
# import pymysql
# pymysql.install_as_MySQLdb()
#### 使用mysqlclient不需要写两句话,不用改源码
3 user模块user表设计
# 用户板块---》做成app
python ../../manage.py startapp user
# 创建用户表,基于auth的user表扩写
### 注意:在写好这个之前,不要先迁移数据,如果迁移了数据库,这个就不行了
### 如果你已经迁移了,删除数据库,删除所有的migrations文件,包含你自己的app,和auth和admin这两个app
## models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
mobile = models.CharField(max_length=11, unique=True) # 唯一,长度11
# 需要pillow包的支持 ImageField继承自FileField
icon = models.ImageField(upload_to='icon', default='icon/default.png')
class Meta:
db_table = 'luffy_user'
verbose_name = '用户表'
verbose_name_plural = verbose_name
def __str__(self):
return self.username
# 配置文件---》注册表
INSTALLED_APPS = [
# ...
'user',
]
# 自定义User表
AUTH_USER_MODEL = 'user.User'
## 配置media
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# 安装pillow ,迁移
pip install pillow
python manage.py makemigrations
python manage.py migrate
4 前台创建及配置
# 创建项目
vue create luffycity
# 使用pycharm打开
# 删除一些东西
### APP.vue
<template>
<div id="app">
<router-view/>
</div>
</template>
## HomeView.vue
<template>
<div class="home">
<h1>首页</h1>
</div>
</template>
<script>
export default {
name: 'HomeView',
components: {
}
}
</script>
## router下的index.js
const routes = [
{
path: '/',
name: 'home',
component: HomeView
},
]
### elementui ,bootstrap,jquery,axios配置
# axios
cnpm install axios -S
## main.js
import axios from 'axios'
Vue.prototype.$axios = axios;
#elementui
cnpm install element-ui -S
## main.js
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
# bootstrap和jq
cnpm install jquery -S
cnpm install bootstrap@3 -S
## vue.config.js
module.exports = {
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
"window.$": "jquery",
Popper: ["popper.js", "default"]
})
]
}
};
## main.js
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'
### 全局css样式配置
##assets/css/global.css
/* 声明全局样式和项目的初始化样式 */
body, h1, h2, h3, h4, h5, h6, p, table, tr, td, ul, li, a, form, input, select, option, textarea {
margin: 0;
padding: 0;
font-size: 15px;
}
a {
text-decoration: none;
color: #333;
}
ul {
list-style: none;
}
table {
border-collapse: collapse; /* 合并边框 */
}
## main.js
// 把自己定义的global.css 引入
import './assets/css/global.css'
## 配置文件配置
# assets/js/settings.js
export default {
base_url: "http://127.0.0.1:8000"
}
# main.js
// 把自己定义的global.css 引入
import './assets/css/global.css'
// 导入自定义配置
import settings from './assets/js/settings'
Vue.prototype.$settings = settings;