首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

教你搭建个人/企业私有云盘-kodexplorer

环境说明: 系统版本:CentOS 6.9 x86_64 软件版本:nginx-1.12.2php-5.5.38 可道云kodexplorer4.37 1、nginx的编译安装 1.1 创建目录mkdir -p /service/toolsmkdir /applicationcd /service/toolswget http://nginx.org/download/nginx-1.12.2.tar.gz 下载或者上传nginx包 1.2 解压tar zxvf nginx-1.12.2.tar.gz 1.3 编译安装yum install gcc gcc-c++ glibc -y #安装编译器yum install pcre-devel zlib-devel openssl-devel –y 装pcre为了重写rewrite提供正则表达式库,装zlib为了gzip提供数据压缩用的函数库,装openssl为 Nginx 模块(如 ssl )提供密码算法、证书以及 SSL 协议等功能C语言源码包,需要编译才能使用编译安装三部曲 ./configure(指定编译参数:安装目录及版本) cd nginx-1.12.2 ./configure --prefix=/application/nginx-1.12.2 --pid-path=/var/run/nginx.pid --user=nginx --group=nginx --with-http_ssl_module ./configure -help #查看帮助 生成Makefile文件makemake是用来编译的,它从Makefile中读取指令,然后编译 cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \ -o objs/src/http/modules/ngx_http_geo_module.o \ src/http/modules/ngx_http_geo_module.c make installmake install是用来安装的,它也从Makefile中读取指令,安装到指定的位置 [root@Web01 nginx-1.12.2]# cd /application/nginx-1.12.2/ [root@Web01 nginx1.12.2]# ls -1 conf #配置文件 html #网站html文件 logs #日志 sbin #二进制的执行文件 1.4 配置 创建软链接 ln -s /application/nginx-1.12.2 /application/nginx ln -s /application/nginx/sbin/nginx /usr/bin/ useradd -M -s /sbin/nologin -r -u 88 nginx #创建用户 -M 不创建用户的HOME目录 -s shell 指定默认登录shell -r 创建系统账户 -u uid 为账户指定一个唯一的UID conf目录 fastcgi.conf 配合php uwsgi_params 配合python nginx.conf 主配置文件 mime.types 多媒体资源类型配置文件 最小化配置文件 grep -Ev '^$|#' nginx.conf.default >nginx.conf [root@Web01 conf]# grep -Ev '^$|#' nginx.conf.default >nginx.conf [root@Web01 conf]# cat nginx.conf worker_processes 1; #工作进程数 events { #event模块 worker_connections 1024; #默认工作连接数 } http { #http模块,nginx核心模块 include mime.types; #加载的多媒体资源类型配置文件 default_type application/octet-stream; #默认类型(16进制) sendfile on; #优化配置选项 keepalive_timeout 65; #长连接超时时间65秒 server { listen 80; #默认监听的端口 server_name localhost; #网站域名 location / { #网站站点根目录位置 root html; #网站文件 index index.html index.htm; #网站首页 } error_page 500 502 503 504 /50x.html; #错误页面500,502.503.504返回50x.html location = /50x.html { root html; } } } 1.5 启动 /application/nginx/sbin/nginx –t #语法检查并测试 /application/nginx/sbin/nginx #启动 /application/nginx/sbin/nginx -s reload #平滑重启,不影响用户访问 /application/nginx/sbin/nginx -s stop #关闭 /application/nginx/sbin/nginx -V #查看版本及安装的模块 启动后会生成几个temp目录浏览器访问 编译安装Nginx完成 2、编译安装php 2.1下载并安装相关编译器mkdir -p /service/tools #创建目录 cd /service/tools/ wget http://mirrors.sohu.com/php/php-5.5.38.tar.gz #下载包 tar xf php-5.5.38.tar.gz #解压 yum install gcc gcc-c++ glibc -y #安装编译器,如果已经编译安装了nginx则不需要此步骤 yum install -y libxml2-devel curl curl-devel libjpeg-devel libpng-devel freetype-devel 安装编译时所需库 cd php-5.5.38 #进入php-5.5.38目录 2.2 编译安装编译生成makefile** ./configure --prefix=/application/php-5.5.38 --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64/ --with-curl --enable-fpm --enable-mbstring --with-gd --with-fpm-user=nginx --with-fpm-group=nginx make && make install 3、配置 [root@Web02 php-5.5.38]# ln -s /application/php-5.5.38 /application/php #创建软链接 [root@Web02 php-5.5.38]# ln -s /application/php/bin/* /usr/bin/ #创建命令软链接 [root@Web02 php-5.5.38]# cp php.ini-production /application/php-5.5.38/etc/php.ini 拷贝默认配置文件 [root@Web02 php-5.5.38]# cp /application/php-5.5.38/etc/php-fpm.conf.default /application/php-5.5.38/etc/php-fpm.conf 拷贝默认php-fpm配置文件,php-fpm 启动进程数 4、启动 [root@Web02 php-5.5.38]# /application/php/sbin/php-fpm #启动php [root@Web02 php-5.5.38]# netstat -lntup|grep 9000 #查看进程9000端口 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 97399/php-fpm 5、配置nginx使其支持php 查看nginx.conf.default有关php的部分(65-71行),将此内容添加到nginx.conf中,并修改fastcgi_param指定script文件名documentrootdocumentrootfastcgi_script_name可以在/application/nginx/conf/fastcgi.conf查看 65 #location ~ \.php$ { 66 # root html; 67 # fastcgi_pass 127.0.0.1:9000; 68 # fastcgi_index index.php; 69 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 70 # include fastcgi_params; 71 #} [root@Web02 php-5.5.38]# cd /application/nginx/conf/ [root@Web02 conf]# vim nginx.conf server { listen 80; server_name localhost; index index.php index.html index.htm; location / { root html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME documentrootdocumentrootfastcgi_script_name; include fastcgi_params; } } } 这个配置的意思是 在浏览器中访问的.php文件,实际读取的是 $document_root(网站根目录)下的.php文件 -- 也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如果没有配置这一配置项时,nginx不回去网站根目录下访问.php文件,所以返回空白 配置项目中:include fastcgi_params; fastcgi_params 文件中含有各个nginx常量的定义,默认情况 SCRIPT_FILENAME = /scripts$fastcgi_script_name检查语法nginx -t 6、配置网盘,下载解压可道云kodexplorer [root@Web02 conf]# cd ../html/ #进入到站点目录 [root@Web02 html]# ls 50x.html index.html [root@Web02 html]# rm -rf * #删除原有的站点文件 [root@Web02 html]# wget http://static.kodcloud.com/update/download/kodexplorer4.37.zip 下载 [root@Web02 html]# unzip kodexplorer4.37.zip #解压 [root@Web02 html]# nginx #启动nginx 浏览器访问 根据提示操作 su -c 'setenforce 0' #关闭selinux,su -c 指定命令,用root执行 chmod -R 777 /var/www/html/ #按照提示修改权限 刷新页面重新访问,成功,设置管理员用户名和密码,进行登录及后续图形界面操作

优秀的个人博客,低调大师

google oppia Python Web编程运行环境搭建

Python Web编程 Python的Web框架中,mod-python是一个很方便实用的,而且可以跟其他的框架一起使用的。 下面介绍一下Apache和mod-python的协作使用。 首先需要下载的软件有: 1、python-3.3.5(https://www.python.org/downloads/release/python-335/)根据系统选择你的版本我这里选择的是Windows x86-64 MSI installerwindow 版本,根据系统提示一步一步的安装即可,这里不需多啰嗦哈! 2、安装apache2.2或nginx 服务器,安装步骤不需要要多啰嗦吧,我这里为了省事直接下载了一个集成开发环境PHPfind(nginx+php+mysql) 或wampserver集成开发工具(包含有php+apache+mysql) 3、mod_python-3.5.0(http://dist.modpython.org/dist/)下载后的文件需要编译哈!inux shell下编译后生产so文件,重新命名为mod_python_3.5.0.so放入apache中modules文件夹中。当然获取现存的mod_python.so 你可以网上搜一下其他下载地址! 接下来需要修改Apache的配置文件Apache2.2\conf\httpd.conf。 添加如下内容:LoadModule python_module modules/mod_python_3.5.0.so,这个文件会处理和转发发送到Apache的Http请求mod-python。 或者使用mod_wsgi 模块运行python,下载地址:http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py26-3.3.soi因为我机子上的wampserver使用的是2.2版本的apache 所以我下载 mod_wsgi-win32-ap22py27-3.3.so 接下来需要修改Apache的配置文件Apache2.2\conf\httpd.conf。 LoadModule wsgi_module modules/mod_wsgi.so 依次安装Python、Apache和 (mod-python或mod_wsgi)。 AddHandle说明如果GET此目录下所有的.py文件用mod_python处理;PythonHandler MyTest是缺省的文件,当取得“/”时执行的文件;PythonDebug On把调试开关打开,如果出现错误,在浏览器上能看见出错的调用栈信息。 然后在D:\PythonWeb放一个HTML文件,如果能通过http://localhost/test.py访问的话,那就说明安装成功了。 mod_python下载地址:http://www.modpython.org/ 以下是一个测试python的文件。可以测试你的python是否安装正确 编写测试文档,保存为mptest.py; from mod_python import apache def handler(req): req.write("Hello Word! www.itokit.com"); return apache.OK 编写py程序,一定得注意缩进问题,刚刚学习python,from这一行和def这一行不要缩进,下面三行要缩进,否则会报错“IndentationError: unexpected indent”,一切顺利的话,浏览该文件结果显示: Hello World! 另外 注意添加test.py文件

优秀的个人博客,低调大师

智慧园区-楼层搭建之复杂CAD处理

本章主要解决问题:复杂CAD通过CAD导入不能识别怎么办? 请看这张鬼画符cad 通过【导入AutoCAD文件】功能不能被系统识别(参考上一篇教程! 智慧园区-楼宇建模技巧之【建楼篇】) 这样的CAD图纸很不规范,包含了许多和建筑本身没有关系的信息。即使被系统识别出来了,也有很多没用的墙体。所以针对这种cad,我来介绍一种新的建模方式。 导入CAD图片临摹建模 通过AutoCAD将cad导出成PDF,再从PDF导出成图片。确保图片分辨率<4096*4096 点击图片管理>查看管理,导入cad图片 点击设置比例,按照实际长度填写后确定。将图片缩放到正确比例 接下来就可以按照cad底图进行描边了! 描边效果↓

优秀的个人博客,低调大师

Django 搭建CMDB系统完整[3](主页面)

main_page.html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>CMDB-后台系统</title> <link href="/static/style/authority/main_css.css" rel="stylesheet" type="text/css" /> <link href="/static/style/authority/zTreeStyle.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="/static/scripts/jquery/jquery-1.7.1.js"></script> <script type="text/javascript" src="/static/scripts/zTree/jquery.ztree.core-3.2.js"></script> <script type="text/javascript" src="/static/scripts/authority/commonAll.js"></script> <script type="text/javascript"> /退出系统/ function logout(){ if(confirm("您确定要退出本系统吗?")){ window.location.href = "/login/"; } } /**获得当前日期**/ function getDate01(){ var time = new Date(); var myYear = time.getFullYear(); var myMonth = time.getMonth()+1; var myDay = time.getDate(); if(myMonth < 10){ myMonth = "0" + myMonth; } document.getElementById("yue_fen").innerHTML = myYear + "." + myMonth; document.getElementById("day_day").innerHTML = myYear + "." + myMonth + "." + myDay; } /**加入收藏夹**/ function addfavorite(){ var ua = navigator.userAgent.toLowerCase(); if (ua.indexOf("360se") > -1){ art.dialog({icon:'error', title:'友情提示', drag:false, resize:false, content:'由于360浏览器功能限制,加入收藏夹功能失效', ok:true,}); }else if (ua.indexOf("msie 8") > -1){ window.external.AddToFavoritesBar('${dynamicURL}/authority/loginInit.action','xmrbi-cmdb');//IE8 }else if (document.all){ window.external.addFavorite('${dynamicURL}/authority/loginInit.action','xmrbi-cmdb'); }else{ art.dialog({icon:'error', title:'友情提示', drag:false, resize:false, content:'添加失败,请用ctrl+D进行添加', ok:true,}); } } </script> <script type="text/javascript"> /* zTree插件加载目录的处理 */ var zTree; var setting = { view: { dblClickExpand: false, showLine: false, expandSpeed: ($.browser.msie && parseInt($.browser.version)<=6)?"":"fast" }, data: { key: { name: "resourceName" }, simpleData: { enable:true, idKey: "resourceID", pIdKey: "parentID", rootPId: "" } }, callback: { // beforeExpand: beforeExpand, // onExpand: onExpand, onClick: zTreeOnClick } }; var curExpandNode = null; function beforeExpand(treeId, treeNode) { var pNode = curExpandNode ? curExpandNode.getParentNode():null; var treeNodeP = treeNode.parentTId ? treeNode.getParentNode():null; for(var i=0, l=!treeNodeP ? 0:treeNodeP.children.length; i<l; i++ ) { if (treeNode !== treeNodeP.children[i]) { zTree.expandNode(treeNodeP.children[i], false); } } while (pNode) { if (pNode === treeNode) { break; } pNode = pNode.getParentNode(); } if (!pNode) { singlePath(treeNode); } } function singlePath(newNode) { if (newNode === curExpandNode) return; if (curExpandNode && curExpandNode.open==true) { if (newNode.parentTId === curExpandNode.parentTId) { zTree.expandNode(curExpandNode, false); } else { var newParents = []; while (newNode) { newNode = newNode.getParentNode(); if (newNode === curExpandNode) { newParents = null; break; } else if (newNode) { newParents.push(newNode); } } if (newParents!=null) { var oldNode = curExpandNode; var oldParents = []; while (oldNode) { oldNode = oldNode.getParentNode(); if (oldNode) { oldParents.push(oldNode); } } if (newParents.length>0) { for (var i = Math.min(newParents.length, oldParents.length)-1; i>=0; i--) { if (newParents[i] !== oldParents[i]) { zTree.expandNode(oldParents[i], false); break; } } }else { zTree.expandNode(oldParents[oldParents.length-1], false); } } } } curExpandNode = newNode; } function onExpand(event, treeId, treeNode) { curExpandNode = treeNode; } /** 用于捕获节点被点击的事件回调函数 **/ function zTreeOnClick(event, treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("dleft_tab1"); zTree.expandNode(treeNode, null, null, null, true); // zTree.expandNode(treeNode); // 规定:如果是父类节点,不允许单击操作 if(treeNode.isParent){ // alert("父类节点无法点击哦..."); return false; } // 如果节点路径为空或者为"#",不允许单击操作 if(treeNode.accessPath=="" || treeNode.accessPath=="#"){ //alert("节点路径为空或者为'#'哦..."); return false; } // 跳到该节点下对应的路径, 把当前资源ID(resourceID)传到后台,写进Session rightMain(treeNode.accessPath); if( treeNode.isParent ){ $('#here_area').html('当前位置:'+treeNode.getParentNode().resourceName+'&nbsp;>&nbsp;<span style="color:#1A5CC6">'+treeNode.resourceName+'</span>'); }else{ $('#here_area').html('当前位置:系统&nbsp;>&nbsp;<span style="color:#1A5CC6">'+treeNode.resourceName+'</span>'); } }; /* 上方菜单 */ function switchTab(tabpage,tabid){ var oItem = document.getElementById(tabpage).getElementsByTagName("li"); for(var i=0; i<oItem.length; i++){ var x = oItem[i]; x.className = ""; } if('left_tab1' == tabid){ $(document).ajaxStart(onStart).ajaxSuccess(onStop); // 异步加载"业务模块"下的菜单 loadMenu('YEWUMOKUAI', 'dleft_tab1'); }else if('left_tab2' == tabid){ $(document).ajaxStart(onStart).ajaxSuccess(onStop); // 异步加载"系统管理"下的菜单 loadMenu('XITONGMOKUAI', 'dleft_tab1'); }else if('left_tab3' == tabid){ $(document).ajaxStart(onStart).ajaxSuccess(onStop); // 异步加载"其他"下的菜单 loadMenu('QITAMOKUAI', 'dleft_tab1'); } } $(document).ready(function(){ $(document).ajaxStart(onStart).ajaxSuccess(onStop); /** 默认异步加载"业务模块"目录 **/ loadMenu('YEWUMOKUAI', "dleft_tab1"); // 默认展开所有节点 if( zTree ){ // 默认展开所有节点 zTree.expandAll(true); } }); function loadMenu(resourceType, treeObj){ /*$.ajax({ type:"POST", url:"${dynamicURL}/authority/modelPart.action?resourceType=" + resourceType, dataType : "json", success:function(data){ // 如果返回数据不为空,加载"业务模块"目录 if(data != null){ // 将返回的数据赋给zTree $.fn.zTree.init($("#"+treeObj), setting, data); alert(treeObj); zTree = $.fn.zTree.getZTreeObj(treeObj); if( zTree ){ // 默认展开所有节点 zTree.expandAll(true); } } } });*/ data = [{"accessPath":"","checked":false,"delFlag":0,"parentID":1,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":3,"resourceName":"菜单一","resourceOrder":0,"resourceType":""}, {"accessPath":"house_list.html","checked":false,"delFlag":0,"parentID":3,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":31,"resourceName":"菜单1","resourceOrder":0,"resourceType":""}, {"accessPath":"","checked":false,"delFlag":0,"parentID":3,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":32,"resourceName":"菜单2","resourceOrder":0,"resourceType":""}, {"accessPath":"","checked":false,"delFlag":0,"parentID":1,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":4,"resourceName":"菜单二","resourceOrder":0,"resourceType":""}, {"accessPath":"","checked":false,"delFlag":0,"parentID":4,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":41,"resourceName":"菜单3","resourceOrder":0,"resourceType":""}, {"accessPath":"","checked":false,"delFlag":0,"parentID":4,"resourceCode":"","resourceDesc":"","resourceGrade":2,"resourceID":42,"resourceName":"菜单4","resourceOrder":0,"resourceType":""}]; // 如果返回数据不为空,加载"业务模块"目录 if(data != null){ // 将返回的数据赋给zTree("#"+treeObj), setting, data); // alert(treeObj); zTree = $.fn.zTree.getZTreeObj(treeObj); if( zTree ){ // 默认展开所有节点 zTree.expandAll(true); } } } //ajax start function function onStart(){ $("#ajaxDialog").show(); } //ajax stop function function onStop(){ // $("#ajaxDialog").dialog("close"); $("#ajaxDialog").hide(); } </script> </head> <body onload="getDate01()"> <div id="top"> <div id="top_logo"> <img alt="logo" src="/static/images/common/logo.jpg" width="274" height="49" style="vertical-align:middle;"> </div> <div id="top_links"> <div id="top_op"> <ul> <li> <img alt="当前用户" src="/static/images/common/user.jpg">: <span>{% if user.username %}{{ user.username }}{% else %}anonymous user!You need to <a href="/login/">login</a>{% endif %}</span> </li> <li> <img alt="事务月份" src="/static/images/common/month.jpg">: <span id="yue_fen"></span> </li> <li> <img alt="今天是" src="/static/images/common/date.jpg">: <span id="day_day"></span> </li> </ul> </div> <div id="top_close"> <a href="javascript:void(0);" onclick="logout();" target="_parent"> <img alt="退出系统" title="退出系统" src="/static/images/common/close.jpg" style="position: relative; top: 10px; left: 25px;"> </a> </div> </div> </div> <div id="side"> <div id="left_menu"> <ul id="TabPage2" style="height:200px; margin-top:50px;"> <li id="left_tab1" class="selected" onClick="javascript:switchTab('TabPage2','left_tab1');" title="服务器资产管理"> <img alt="服务器资产管理" title="服务器资产管理" src="/static/images/common/1_hover.jpg" width="33" height="31"> </li> <li id="left_tab2" onClick="javascript:switchTab('TabPage2','left_tab2');" title="监控管理系统"> <img alt=" 监控管理系统" title=" 监控管理系统" src="/static/images/common/2.jpg" width="33" height="31"> </li> <li id="left_tab3" onClick="javascript:switchTab('TabPage2','left_tab3');" title="系统管理"> <img alt=" 系统管理" title="系统管理" src="/static/images/common/3.jpg" width="33" height="31"> </li> </ul> <div id="nav_show" style="position:absolute; bottom:0px; padding:10px;"> <a href="javascript:;" id="show_hide_btn"> <img alt="显示/隐藏" title="显示/隐藏" src="/static/images/common/nav_hide.png" width="35" height="35"> </a> </div> </div> <div id="left_menu_cnt"> <div id="nav_module"> <img src="/static/images/common/module_1.png" width="210" height="58"/> </div> <div id="nav_resource"> <ul id="dleft_tab1" class="ztree"></ul> </div> </div> </div> <script type="text/javascript"> $(function(){ $('#TabPage2 li').click(function(){ var index = $(this).index(); $(this).find('img').attr('src', '/static/images/common/'+ (index+1) +'_hover.jpg'); $(this).css({background:'#fff'}); $('#nav_module').find('img').attr('src', '/static/images/common/module_'+ (index+1) +'.png'); $('#TabPage2 li').each(function(i, ele){ if( i!=index ){ $(ele).find('img').attr('src', '/static/images/common/'+ (i+1) +'.jpg'); $(ele).css({background:'#044599'}); } }); // 显示侧边栏 switchSysBar(true); }); // 显示隐藏侧边栏 $("#show_hide_btn").click(function() { switchSysBar(); }); }); /**隐藏或者显示侧边栏**/ function switchSysBar(flag){ var side = $('#side'); var left_menu_cnt = $('#left_menu_cnt'); if( flag==true ){ // flag==true left_menu_cnt.show(500, 'linear'); side.css({width:'280px'}); $('#top_nav').css({width:'77%', left:'304px'}); $('#main').css({left:'280px'}); }else{ if ( left_menu_cnt.is(":visible") ) { left_menu_cnt.hide(10, 'linear'); side.css({width:'60px'}); $('#top_nav').css({width:'100%', left:'60px', 'padding-left':'28px'}); $('#main').css({left:'60px'}); $("#show_hide_btn").find('img').attr('src', '/static/images/common/nav_show.png'); } else { left_menu_cnt.show(500, 'linear'); side.css({width:'280px'}); $('#top_nav').css({width:'77%', left:'304px', 'padding-left':'0px'}); $('#main').css({left:'280px'}); $("#show_hide_btn").find('img').attr('src', '/static/images/common/nav_hide.png'); } } } </script> <!-- side menu start --> <div id="top_nav"> <span id="here_area">当前位置:系统&nbsp;>&nbsp;系统介绍</span> </div> <div id="main"> <iframe name="right" id="rightMain" src="" frameborder="no" scrolling="auto" width="100%" height="100%" allowtransparency="true"/> </div> </body> </html>

优秀的个人博客,低调大师

Django 搭建CMDB系统完整[1](用户登录)

***使用的mysql数据库,所以系统中要先安装mysql数据库 1、安装环境: pip install django python -m pip install --upgrade pip setuptools python -m pip install django pip install --upgrade pyls https://pypi.python.org/simple pip install MySQL-python pip install mysqlclient mkdir /dj cd /dj django-admin startproject cmdb cd cmdb python manage.py migrate cd cmdb vi settings.py 做如下更改 ALLOWED_HOSTS = ['*'] TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'cmdb', 'USER': 'root', 'PASSWORD': 'xxxxxxx', 'HOST': '127.0.0.1', 'PORT': '3306', } } vi urls.py 做如下更改 from django.conf.urls import url from django.contrib import admin from cmdb import views from django.contrib.auth.views import * urlpatterns = [ url(r'^', login), ] vi views.py 做如下更改 from django.shortcuts import render_to_response def main_page(request): return render_to_response('main_page.html', {'user':request.user }) cd /dj/cmdb mkdir -p templates/registration cd templates vi main_page.html 做如下更改 <html> <head> <title>Django Bookmarks</title> </head> <body> <h1>Welcome to Django Bookmarks</h1> {% if user.username %} <p>Welcome {{ user.username }}! Here you can store and share bookmarks!</p> {% else %} <p>Welcome anonymous user! You need to <a href="/login/">login</a> before you can store and share bookmarks.</p> {% endif %} </body> </html> cd registration vi login.html 做如下更改 <html> <head> <title>Django Bookmarks - User Login</title> </head> <body> <h1>User Login</h1> {% if form.has_errors %} <p>Your username and password didn't match. Please try again.</p> {% endif %} <form method="post" action="."> <p><label for="id_username">Username:</label> {{ form.username }}</p> <p><label for="id_password">Password:</label> {{ form.password }}</p> <input type="hidden" name="next" value="/" /> {% csrf_token %} <input type="submit" value="login" /> </form> </body> </html>

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册