- 博客(125)
- 资源 (1)
- 收藏
- 关注
原创 django中的sttings.py文件的部分变量的解读
django中的sttings.py文件的部分变量的解读# 获取当前脚本的完整路径,含带文件本身os.path.abspath(__file__)# 获取脚本的上一级目录os.path.dirname# 路径拼接os.path.join()sys.path是一个列表初始值分别是: 输入脚本的目录(当前文件的目录)(绝对路径) 环境变量 Python默认安装路径# 系统的静态文件目录STATIC_URL = '/static/'# 系统公共静态文件的目录STATICFI
2021-01-11 17:52:10 233 1
原创 django数据库之建表
django数据库之建表首先了解几个知识: 什么是一对多,多对多,一对一 什么是关联查询 什么是主表,什么是从表 外键放的位置 正向查询,反向查询 各种设计模式下,怎么查询一对多: 班级表和学生表 一个班级可以有多个学生,一个学生属于那个班级一对一: 学生表和学生信息表 每个学生对应各自的学生信息 多对多: 学生表和课程表 一个学生可以选多门课程,一个课程可以别多个学生选关联查询: 查询数据需要牵扯多个表,需要从多个表中提取字段数据 种类: 内连接 外链接
2020-12-09 13:38:45 360 1
原创 前端element框架之日常问题解决方案
在methods的函数中调用另一个函数mothods:{ aaa(){ alter('000') }, bbb(){ this.aaa() alter('111') }}
2020-11-09 16:21:17 237 4
原创 学生宿舍管理系统毕业设计(python)
学生宿舍管理系统(Python版)角色: 宿舍管理员、学生、系统管理员版本信息: python3、django、jinja2、log、sqllite3或者mysql、xadmin说明: 本人自己的毕业设计,有源码和论文以及其他所需的文档,有需要的留言,QQ:2381264284拒绝白嫖,论文知网查重6%...
2020-07-03 15:58:35 9673 5
原创 django数据库之mysql使用命令
知识点: 分三部分(对数据库库的操作、表的操作、数据的操作)所需数据:说明:库名: student表名:s部分表中字段:c_address: 地址c_name:姓名c_gender:性别x:某个表的字段名...
2019-12-12 21:17:20 304
原创 C++中的* & 和&&区分
C++被称为C的超集。在C++中有很多声明和C相似,比如:*:C: int *p;C++: int* p;读法:p 是一个指向整数类型的指针变量C: x = *p;读法:把指针p指向的值赋值给x&:C:x = a & b; # C中为逻辑与C++: 1.引用int i = 3;int &r = i; # C++中为引用变量(引用),本质是指针的另一个名字。r就是引用变量2.取地址string *p = &r;&&:
2022-05-09 20:02:25 1063
原创 cmake
cmake# 将第三方库的搜索路径放到工程路径下include_directories()CMAKE_C_FLAGS 设置C编译选项CMAKE_CXX_FLAGS 设置C++编译选项set(var path)# 生成可执行文件add_executable(exename srcname)# 向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置add_subdirectory(src_dir binary_dir)# 生成库add_library(lib
2022-04-29 10:46:40 365
原创 subprocess模块
subprocess模块subprocess是python内置的模块,这个模块中的Popen可以查看用户输入的命令行是否存在如果存在,把内容写入到stdout管道中如果不存在,把信息写入到stderr管道需要注意的是,这个模块的返回结果只能让开发者看一次,如果想多次查看,需要在第一次输出的时候,把所有信息写入到变量中。subprocess中的popen用法:Popen基本格式:subprocess.Popen(‘命令’, shell=True, stdout=subprocess.PIPE
2022-04-25 09:53:01 7102
原创 Python代码执行顺序
为什么要写这个呢,我觉得这个很重要,确切了解掌握这个知识点,有利于后边的装饰器、闭包的学习1.正常执行顺序,从上往下,从右往左(针对赋值)a = 1 # 1print(a) # 22.函数的执行过程,从上往下,先执行函数名,不执行函数内部,只有函数被调用时才执行def a(): # 1 print('a') # 4 def b(): # 2 print('b') a()
2021-12-13 17:14:03 3917 1
原创 vue实现点击不同按钮展示不同内容
效果是:在同一个页面,点击不同按钮,展示不同内容(内容也是在同意页面)方法是:借助v-show渲染不同的class属性步骤:1.先写两个按钮<div class="right1"> <button class="btn_anniu" @click="change(0)" :class="{ newStyle:0===number}">地图</button> <button class="btn_
2021-12-13 13:52:37 10643 2
原创 yield关键字
迭代器定义: 迭代是Python最强大的功能之一,是访问集合元素的一种方式。本质: 迭代器本质是一个对象,是一个可以记住遍历的位置的对象。功能: 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完毕就结束。只能往前不能往后迭代器有两个基本方法: lter() # 创建迭代对象 next() # 迭代器的下一个元素特别说明: 字符串、列表或者元组都可以用于创建迭代器对象实例分析: list = [1, 2, 3, 4] lt = lter(list) #
2021-12-09 17:55:25 670
原创 cPython的GIL
GIL先声明一下,原本没打算写这么多,但是写着写着发现,需要解释的东西太多了,一个套一个,其实我现在总结的这一版还是没有完全到每一个细节,但是我想靠这些应该差不多了。我想了一下大概还有两个没讲,1.为什么还用GIL 2.垃圾回收机制什么是GIL?GIL是cPython解释器的特有技术术语,中文为全局解释器锁。因为在创建Python的时候只考虑到单核的cpuGIL的功能?GIL的功能就是:在执行Python线程的时候,先锁住自身线程,实现同一时间只允许执行一个进程。解决多线程之间数据完整性
2021-12-08 11:29:56 611
原创 Ubuntu安装软件方式
Ubuntu软件安装有两种方式: 离线(deb格式文件安装) 在线(apt-get方式安装)deb格式文件安装和卸载一般先去下载deb格式文件安装包,然后使用dpke命令进行软件的安装和卸载安装: dpkg -i xxx.deb卸载: dpkg -r xxx.debapt-get方式安装和卸载这种方式是在线从互联网的软件仓库中搜索、安装、更新、卸载安装: sudo apt-get install xxx卸载: sudo apt-get remove xxx...
2021-12-07 14:21:32 706
原创 解决post请求跨域请求第三方服务器
解决post请求跨域请求第三方服务器# 只是一个解决的方法,不是最完美的,但是能解决问题前端用vue,后端是django问题:将选择的参数数据,通过http通信,访问第三方服务器解决:按理说这是一个简单的http通信,只需要前端将参数数据,通过第三方服务器的API接口,发送过去就行了。 我遇到的问题是:首先这是一个post请求,需要解决跨域问题,因为平时都是通过后端引用corsheader第三方库设置解决跨域问题,但是这次访问的第三方的服务器,不是访问的django的后端服务器,导致这个方法
2021-10-21 14:53:43 1368
原创 记录django开发后,不能用ip方式访问
记录django开发后,不能用ip方式访问问题: 在pycharm中进行启动后,在网页是可以使用127或者localhost进行访问,但是不能使用ip进行访问 解决: 第一步:修改settings文件,ALLOWED_HOSTS = ['ip'] 第二步:不使用pycharm进行启动,使用终端进行访问,python manage.py runserver 0.0.0.0:8000 原因: 不使用pycharm是因为,pycharm中只是设置了runserver,如果只设置runserver
2021-09-18 10:15:36 563
原创 记录一下使用vue进行前后端交互时出现的问题
记录一下使用vue进行前后端交互时出现的问题如果后端返回的是页面,比如render(),前端接收数据就要使用,比如tabeldata: {{ xxx | sate }}如果后端返回的是数据,比如json数据等,前端在声明时只需要为空,比如tabledata: []...
2021-09-16 17:29:03 345
原创 element实现列表中添加一个下拉框(下拉框内容不同)
element实现列表中添加一个下拉框(下拉框内容不同)tableDatas: [{ car_index: '201', car_type: '消杀', car_state: '运行', power: '10', chemical: '20', current_rout
2021-09-16 11:09:13 1147
原创 处理登录和首页是遇到的问题
处理登录和首页是遇到的问题技术:vue做的页面、python做的后端说明:后端没有借用django框架的登录逻辑,因为我设计的这个系统的用户角色多,而且自带的登录很繁杂问题1:(前端输入的信息,后端接收到为None)一定要看看,前端传的数据的格式是什么,后端根据前端规定的格式接收。我犯的问题是前端传递json,后端接收表单数据。 问题2:(为什么登录完成,页面不刷新) 我的问题是后端写好了,跳转的逻辑,但是前端没有写登录成功后的逻辑代码,导致不能跳转的首页。 问题3:(前后端传递和接
2021-07-13 15:49:26 294
原创 rbac组件
rbac组件这个贴不是为了教学,教学网上、b站有很多,可以看看,这是就是用来记录,方便后续使用后台管理系统,基本上绕不开权限管理这件事,除非是一个小的系统,不需要进行权限管理。rbac组件,就是基于角色的权限管理系统。大致思路就是: 分为用户、角色、权限三方面大致使用流程: 将组件拷贝到项目中 去settings中进行rbac设置 修改本身项目的用户表(也叫将业务用户和rbac用户进行关联) 再有顶多就是修改登录的逻辑和修改之前页面设计权限显示问题settings:######
2021-07-07 14:35:29 154
原创 算法题栏目
将罗马数字转换成整数将由罗马数字组成的字符串,计算出结果思路:将有可能出现的所有组合,写入到字典,通过判断输入字符串的当前位和下一位是否在字典中,判断是否存在前一位数字小于后一位def luoma(str): dict = {'I': 1, 'IV': 4, 'V': 5, 'IX': 9, 'X': 10, 'XL': 40, 'L': 50, 'XC': 90, 'C': 100, 'CD': 400, 'D': 500, 'CM': 900, 'M': 1000} resul
2021-07-05 14:36:36 90
原创 处理django.db.migrations.exceptions.InconsistentMigrationHistory
处理django.db.migrations.exceptions.InconsistentMigrationHistory网上所有的解决方法都是删库,从新迁移!!!!!怎么可能,数据库是测试的还好,要是线上版本的那不完了,我的解决方法是,将你需要迁移建表的那些文件,比如migrations下的文件删除,然后将数据库中存在和这些有关的表删掉,不要删库。比如:我建一个机械表,我就将机械app下的migrations文件删除,然后将和机械有关的记录全删除(在数据库中,比如权限,记录等等),然后从新迁移
2021-06-21 14:15:58 194
原创 后台管理布局
后台管理布局结构一般分三个部分: 顶:标题、logo、用户窗口 左侧:菜单框 右侧:功能区简单写一个模板base.html<head> {% block title %} {% endblock %} {% block css %} <style> .header{ width: 100%; height: 50px; background-color:
2021-06-18 16:29:25 192
原创 权限组件---rbac
权限组件—rbac什么是权限?对系统功能进行限制权限与应用权限可以应用于多个应用中用户、角色、权限不给用户直接分配权限,通过将用户分配角色,给角色分配权限一个包含正则表达式的url相当于一个权限用户登录成功后: 1.查询当前用户的所有权限 1.1查询用户的角色 ret = user.roles.all() 1.2查询角色对应的权限 ret = ret.values('permissions__url').distinct() permission_list = [
2021-06-18 14:16:55 262
原创 django中间件
中间件What?中间件是一个用来处理django请求与响应的框架级别的钩子,是一个轻量、低级别的插件系统。用于在全局范围内改变django的输入输出说白了,中间件就是一个类视图,类里边包含很多自定义的函数,这些函数的具体功能才是中间件实现的根本自定义函数process_request(self, request)process_view(self, request, view_func, view_args, view_kwargs)process_template_response(se
2021-06-17 15:05:41 98
原创 js弹框的三种方法
js弹框的三种方法alert、confirm、promptalertalert()是将括号里的文本信息显示到弹框中,称为警示对话框。该对话框包含一个“确定”按钮,用户阅读完所显示的信息后,只需单击该按钮就可以关闭对话框。alert("我是人")confirmconfirm()也是将括号里的文本信息显示到弹框中,但是包含一个“取消”按钮,这种对话框称为确认对话框。con = confirm('你是人吗');if(con == true){}else{}promptprompt(
2021-05-25 17:04:22 3182
原创 canvas绘制可缩放的室内地图和路径
最近一直在写canvas绘制室内地图和路径这个功能,大致聊一下这个功能讲了什么。具体是需要用canvas将室内地图绘制出来(这个不难,canvas教程有),并且地图需要能进行放大缩小,同时将地图上的路径进行展示,同样需要能放大缩小。其实不能看出,就是将地图和路径进行同时的放大缩小。我之前的思路是(之前没有要求缩放),创建canvas,然后设置背景(背景就是地图),然后将后端的路径数据展示到前端背景上,具体的实现,之前的博客有说明,可以翻翻看。之后添加一个功能就是要求能将地图和路径能进行缩放,那么再将
2021-05-24 14:20:52 2177
原创 在canvas画布中获取鼠标点击的坐标
在canvas画布中获取鼠标点击的坐标思路: 给canvas绑定一个点击事件,结合绑定事件,进行获取坐标 环境: 前端vue,后端django前端: html: <div> <canvas id="canvas" width="" height=""></canvas> </div> js: var c = document.getElementById('canvas')
2021-04-26 10:09:40 4130 1
原创 Python使用simpleui后,创建新用户时,密码为明文
Python使用simpleui后,创建新用户时,密码为明文如果使用django的后台,创建一个后台的管理系统,在涉及到用户登录、用户注册这方面的时候,完全不用自己创建视图函数,django的admin自己有登录与注册的方法,只需要进行相关的配置就行。首先是创建model: 省略 配置admin,为model进行注册配置:(密码明文的问题就是出现在这里没配置完全) from apps.users.models import User from django.contrib.auth.admi
2021-04-22 14:15:22 836
原创 为canvas画布动态设置背景图片
为canvas画布动态设置背景图片关键是将canvas和img标签放到同一个盒子里,盒子设置相对位置,并且canvas和img需要设置相同的相对位置<div class="list3"> <canvas id="canvas" width="1276" height="800"></canvas> <img :src=url id="scream" width="1276" height="800"></div><s
2021-04-20 14:13:47 5809
原创 canvas总结:绘图表面大小和元素大小
canvas总结:绘图表面大小和元素大小1.默认大小 如果不设置canvas大小,浏览器默认的大小是300*150. 我们可以通过canvas属性设置w、h: <canvas id="canvas" width="600" height="300"></canvas> 也可以通过css设置canvas大小: #canvas { width: 800px; height: 400px; }2.使用
2021-04-19 15:33:08 966
原创 Python将pgm后缀图片替换成jpg格式
Python将pgm后缀图片替换成jpg格式def pgm_tojpg(img_name): """pgm转换成jpg""" img = Image.open(MEDIA_ROOT + '/maps/' + img_name) img_name = img_name.split('.')[0] new_img_path = 'maps/' + img_name + '.jpg' img.save(MEDIA_ROOT + '/maps/' + img_name +
2021-04-19 10:28:44 597
原创 canvas根据坐标完成室内地图路线的绘制
canvas根据坐标完成室内地图路线的绘制注释:此版本为低版本,后续会完善,只是提供一个思路html: <canvas id="canvas" width="5083px" height="6579px"></canvas> style: <script> var c=document.getElementById( "canvas"); var ctx=c.getContext( "2d");
2021-04-19 10:26:22 1507
原创 django--外键和表数据的操作
django–外键和表数据的操作外键和表—添加数据向多方表中添加数据:(多表中有一个字段是外键) O = One.objects.get(id=xxx) T = Two.objects.create(name="xxx", 外键_id=O.id)外键和表—查询数据查询多表中的数据:(一查多) O = One.objects.get(id=xxx) O.two_set.all() 查询一表中数据:(多查一) T = Two.objects.get(id=xxx) T.外建
2021-04-19 10:14:12 879
原创 django字段
django字段AutoFieldBooleanField True、FalseNullBooleanField Null、True、FalseCharField max_lengthTextField IntegerFieldDecimalField max_digits表示总位数,decimal_places表示小数位数FloatField DateField
2021-04-08 14:30:44 178
原创 vue入门
vue入门基本使用:导包构建HTML使用vue(实例化vue对象进行一系列操作)基本语法:操作数据:<div class="box">{{ content }}</div><script> var vm = new Vue({ el: '.box' data: { content: 'xxx' } });</script>修改属性:<div class="box">{{ content }}&l
2021-03-29 10:20:27 77
原创 vue的使用
vue的使用第一步:导包官方提供两个包:生产包、开发包开发包:vue.js生产包:vue.min.js<script src="/js/vue.js"></script>第二步:构建html<div class="box">{{ content }}</div>第三步:使用vuewindow.onload = function(){ var vm = new Vue({ el: '.box', data: { conte
2021-03-29 09:51:13 82
原创 django新项目创建mysql数据库几个注意事项
django新项目创建mysql数据库几个注意事项不分前后,暂时这么多,后续再补充吧1.安装pymysql包pip install pymysql==0.10.1 -i https://pypi.tuna.tsinghua.edu.cn/simple2.在项目的init文件中,引入pymysqlimport pymysqlpymysql.install_as_MySQLdb()3.创建数据库,一直要事先指定好格式(django.db.utils.DataError: (1366, "In
2021-03-19 14:52:20 105
原创 点击左侧动态列表,在右侧动态生成内容
点击左侧动态列表,在右侧动态生成内容原本我打算在生成动态详情的时候,借助jQuery的ajax异步刷新机制,在指定的区域生成从后台获取到的动态数据,但是,在后台将数据传递给前端后,数据的类型改变了,实在是想不通,还有就是不知道怎么处理回调成功后获取到的数据(也就是不知道后台拿到的数据怎么写到模板里),导致我只能选择另一种方式iframe后台生成左侧的菜单列表数据def get_industry_list(request): """获取行业列表""" industry_list = I
2021-03-11 16:06:33 525
原创 django分页
django分页# 官方文档https://docs.djangoproject.com/en/3.1/topics/pagination/需要用到Paginator模块from django.core.paginator import Paginator实例# 先创建model# 后端代码from django.core.paginator import Paginatordef get_list(request, pindex): lists = xxx.object
2021-03-09 14:46:32 318 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人