Django打造大型企业官网(二)
三、项目环境搭建
3.1.创建项目环境和安装包
创建django项目
- mkvirtualenv DjangoProject
- workon DjangoProject
- pip install -i https://pypi.douban.com/simple django==2.0.2
进front目录
- npm init #初始化一个package.json配置文件文件
在package.json文件中添加要安装的包
- "devDependencies": {
- "browser-sync": "^2.26.7",
- "gulp": "^4.0.2",
- "gulp-cache": "^1.1.2",
- "gulp-concat": "^2.6.1",
- "gulp-cssnano": "^2.1.3",
- "gulp-imagemin": "^6.0.0",
- "gulp-rename": "^1.4.0",
- "gulp-sync": "^0.1.4",
- "gulp-tinypng-nokey": "^1.1.0",
- "gulp-uglify": "^3.0.2",
- "gulp-watch": "^5.0.1"
- }
- {
- "name": "xfz_front",
- "version": "1.0.0",
- "description": "xft front code",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "author": "zhang_derek",
- "license": "ISC",
- "devDependencies": {
- "browser-sync": "^2.26.7",
- "gulp": "^4.0.2",
- "gulp-cache": "^1.1.2",
- "gulp-concat": "^2.6.1",
- "gulp-cssnano": "^2.1.3",
- "gulp-imagemin": "^6.0.0",
- "gulp-rename": "^1.4.0",
- "gulp-sync": "^0.1.4",
- "gulp-tinypng-nokey": "^1.1.0",
- "gulp-uglify": "^3.0.2",
- "gulp-watch": "^5.0.1"
- }
- }
安装包,自动识别package.json文件中需要的包
- npm install
项目目录结构
3.2.编写gulpfile.js文件
gulp.js
- var gulp = require("gulp");
- var cssnano = require("gulp-cssnano");
- var rename = require("gulp-rename");
- var uglify = require("gulp-uglify");
- var concat = require("gulp-concat");
- var tinypng_nokey = require('gulp-tinypng-nokey');
- var bs = require("browser-sync").create();
- //html任务
- gulp.task("html",done =>{
- gulp.src("./templates/**/*.html")
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- // css任务
- gulp.task("css",done =>{
- gulp.src("./src/css/*.css")
- .pipe(cssnano()) //压缩
- .pipe(rename({"suffix":".min"})) //加后缀名
- .pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- //js任务
- gulp.task("js",done =>{
- gulp.src("./src/js/*.js")
- .pipe(uglify({
- 'toplevel':true,
- 'compress':{
- 'drop_console':true
- }
- }))
- .pipe(rename({"suffix":".min"}))
- .pipe(gulp.dest('./dist/js/'))
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- //images任务
- gulp.task("images",done =>{
- gulp.src("./src/images/*.*")
- .pipe(tinypng_nokey())
- .pipe(gulp.dest('./dist/images/'))
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- //监听
- gulp.task('auto',function () {
- gulp.watch("./templates/**/*.html",gulp.series('html'));
- gulp.watch("./src/css/*.css",gulp.series('css'));
- gulp.watch("./src/js/*.js",gulp.series('js'));
- gulp.watch("./src/images/*.*",gulp.series('images'));
- });
- //初始化
- gulp.task("bs",function () {
- bs.init({
- 'server':{
- 'baseDir':'./',
- }
- })
- });
- //创建一个默认任务
- gulp.task("default",gulp.parallel('bs','auto'));
3.3.css改为sass
安装sass包
- npm install gulp-sass --save-dev
把index.css改成index.scss文件
gulpfile.js修改
- var sass = require("gulp-sass");
- // css任务
- gulp.task("css",done =>{
- gulp.src("./src/css/*.scss")
- .pipe(sass().on("error",sass.logError))
- .pipe(cssnano()) //压缩
- .pipe(rename({"suffix":".min"})) //加后缀名
- .pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- //监听
- gulp.task('auto',function () {
- gulp.watch("./templates/**/*.html",gulp.series('html'));
- gulp.watch("./src/css/*.scss",gulp.series('css'));
- gulp.watch("./src/js/*.js",gulp.series('js'));
- gulp.watch("./src/images/*.*",gulp.series('images'));
- });
- var gulp = require("gulp");
- var cssnano = require("gulp-cssnano");
- var rename = require("gulp-rename");
- var uglify = require("gulp-uglify");
- var concat = require("gulp-concat");
- var tinypng_nokey = require('gulp-tinypng-nokey');
- var bs = require("browser-sync").create();
- var sass = require("gulp-sass");
- //html任务
- gulp.task("html",done =>{
- gulp.src("./templates/**/*.html")
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- // css任务
- gulp.task("css",done =>{
- gulp.src("./src/css/*.scss")
- .pipe(sass().on("error",sass.logError))
- .pipe(cssnano()) //压缩
- .pipe(rename({"suffix":".min"})) //加后缀名
- .pipe(gulp.dest('./dist/css/')) //压缩后存放的路径
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- //js任务
- gulp.task("js",done =>{
- gulp.src("./src/js/*.js")
- .pipe(uglify({
- 'toplevel':true,
- 'compress':{
- 'drop_console':true
- }
- }))
- .pipe(rename({"suffix":".min"}))
- .pipe(gulp.dest('./dist/js/'))
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- //images任务
- gulp.task("images",done =>{
- gulp.src("./src/images/*.*")
- .pipe(tinypng_nokey())
- .pipe(gulp.dest('./dist/images/'))
- .pipe(bs.reload({
- stream: true
- }));
- done();
- });
- //监听
- gulp.task('auto',function () {
- gulp.watch("./templates/**/*.html",gulp.series('html'));
- gulp.watch("./src/css/*.scss",gulp.series('css'));
- gulp.watch("./src/js/*.js",gulp.series('js'));
- gulp.watch("./src/images/*.*",gulp.series('images'));
- });
- //初始化
- gulp.task("bs",function () {
- bs.init({
- 'server':{
- 'baseDir':'./',
- }
- })
- });
- //创建一个默认任务
- gulp.task("default",gulp.parallel('bs','auto'));
Django打造大型企业官网(二)的更多相关文章
- 超细讲解Django打造大型企业官网
本文为知了课堂黄勇老师讲的<超细讲解Django打造大型企业官网>的笔记. 第一章 Django预热 1.创建virtualenv虚拟环境 2.URL组成部分详解 3.Django介绍 4 ...
- Django打造大型企业官网
第1章 Django预热 1-为什么需要虚拟环境 2-virtualenv创建虚拟环境 3-virtualenvwrapper使用 4-URL组成部分讲解 5-课程准备工作 6-Django介绍 第2 ...
- Django打造大型企业官网(一)
一.nvm的安装 (1)下载:nvm1.16 (2)安装完成后添加环境变量 C:\Users\Administrator\AppData\Roaming\nvm (3)修改settings.txt,将 ...
- Django打造大型企业官网(八)
4.16.侧边栏标题和广告位布局完成 templates/news/index.html <div class="sidebar-wrapper"> <div c ...
- Django打造大型企业官网(七)
4.13.新闻列表tab栏布局完成 templates/news/index.html <div class="list-outer-group"> <ul cl ...
- Django打造大型企业官网(六)
4.9.根据轮播图个数修改小圆点数量 src/js/index.js function Banner() { this.bannerWidth = 798; } Banner.prototype.in ...
- Django打造大型企业官网(五)
4.6.切换轮播图的箭头样式以及显示和隐藏 templates/news/index.html <span class="arrow left-arrow">‹< ...
- Django打造大型企业官网(四)
4.3.轮播图布局和样式 templates/news/index.html <div class="news-wrapper"> <div class=&quo ...
- Django打造大型企业官网(三)
四.前端首页 4.1.导航条实现 (1)templates/new/index.html <!DOCTYPE html> <html lang="en"> ...
随机推荐
- 使用Let's Encrypt 生成免费的ssl证书的详细过程
参考连接:https://github.com/diafygi/acme-tiny 中文:https://hacpai.com/article/1487899289204 目前我了解可以生成免费证书的 ...
- Asp.Net MVC中Controller、Action、View是如何激活调用的
上篇我们介绍了MVC的路由,知道在注册路由的时候会创建一个MvcHandler将其和Url规则一起放入到了RouteCollection中,之后请求通过UrlRoutingModule,根据当前的UR ...
- Java Servlet 非英文乱码
response.setHeader("Content-Type", "text/json; charset=UTF-8"); request.setChara ...
- XP禁用了U盘和移动硬盘方法
会不会是你XP禁用了U盘和移动硬盘下面这些是任何禁用U盘的!你自己反着试下嘛!方法一,BIOS设置法(快刀斩乱麻法) 进入BIOS设置,选择“Integrated Peripherals”选项,展开后 ...
- vue按需加载组件-webpack require.ensure
使用 vue-cli构建的项目,在 默认情况下 ,执行 npm run build 会将所有的js代码打包为一个整体, 打包位置是 dist/static/js/app.[contenthash].j ...
- 字符串匹配算法之BM算法
BM算法,全称是Boyer-Moore算法,1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了一种新的字符串匹配算法. BM算法定义了两个规则: ...
- 动态规划----最长公共子序列(C++实现)
最长公共子序列 题目描述:给定两个字符串s1 s2 … sn和t1 t2 … tm .求出这两个字符串的最长公共子序列的长度.字符串s1 s2 … sn的子序列指可以表示为 … { i1 < i ...
- CentOS7 export命令
一.windows下的环境变量 在windows系统下,很多软件安装都需要配置环境变量,比如安装jdk,假如你没有配置环境变量,那么在非软件安装的目录下使用javac命令,系统将会报这不是系统内部命令 ...
- LBE_登录Demo
目录 服务器 最小资产库创建 entity配置 实体的Python实现 创建第一个空间Space 让entity进入空间Space 客户端(unity) 生成客户端SDK 实现Client部分验证 验 ...
- Spider-scrapy日志处理
Scrapy生成的调试信息非常有用,但是通常太啰嗦,你可以在Scrapy项目中的setting.py中设置日志显示等级: LOG_LEVEL = 'ERROR' 日志级别 Scrapy日志有五种等级, ...