Django视图函数执行,不在主线程中,直接loop=asyncio.new_event_loop()#不能loop=asyncio.get_event_loop()会触发RuntimeError:Thereisnocurrenteventloopinthread因为asyncio程序中的每个线程都有自己的事件循环,但它只会在主线程中为你自动创建一个事件循环。所以如果你asyncio.get_event_loop在主线程中调用一次,它将自动创建一个循环对象并将其设置为默认值,但是如果你在一个子线程中再次调用它,你会得到...
继续阅读 >
分类:Django
2020
10-13
10-13
Django windows使用Apache实现部署流程解析
我的版本python3.6+django1.11+Apache2.41.下载与安装Apache选择对应电脑版本下载Apache2.4 https://www.apachelounge.com/download/下载完成后解压进入文件夹Apache24目录下。2.配置Apache打开conf/httpd.conf文件,进行一些修改。可以直接ctrl+F进行搜索查找DefineSRVROOT"D:\ProgramFiles\Apache24"#你的Apache文件路径ServerRoot"D:\ProgramFiles\Apache24"#这个是我的解压后的文件夹Listen127....
继续阅读 >
2020
10-13
10-13
详解Django ORM引发的数据库N+1性能问题
背景描述最近在使用Django时,发现当调用api后,在数据库同一个进程下的事务中,出现了大量的数据库查询语句。调查后发现,是由于DjangoORM的机制所引起。DjangoObject-RelationalMapper(ORM)作为Django比较受欢迎的特性,在开发中被大量使用。我们可以通过它和数据库进行交互,实现DDL和DML操作.具体来说,就是使用QuerySet对象来检索数据,而QuerySet本质上是通过在预先定义好的model中的Manager和数...
继续阅读 >
2020
10-10
10-10
Django生成数据库及添加用户报错解决方案
Django生成数据库表时报错__init__()missing1requiredpositionalargument:'on_delete'原因:在django2.0后,定义外键和一对一关系的时候需要加上on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错例如:owner=models.ForeignKey(UserProfile)--->报错owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE)--在老版本这个参数(models.CASCADE)是默认值参数说明:on_delete有...
继续阅读 >
2020
10-10
10-10
python自动化测试三部曲之request+django实现接口测试
国庆期间准备写三篇博客,介绍和总结下接口测试,由于国庆期间带娃,没有按照计划完成,今天才完成第二篇,惭愧惭愧。这里我第一篇博客的地址:https://www.jb51.net/article/197004.htm,主要是介绍unittest框架,有兴趣的同学们可以移步去查阅这里废话少说,进入正题我的思路是这样的1、先用django实现登陆、增加、删除、查看4个接口2、在excel定义好测试案例、然后读取excel中的案例,然后把案例用unittest框架组装和封装3、启...
继续阅读 >
2020
10-10
10-10
Django-Scrapy生成后端json接口的方法示例
网上的关于django-scrapy的介绍比较少,该博客只在本人查资料的过程中学习的,如果不对之处,希望指出改正;以后的博客可能不会再出关于django相关的点;人心太浮躁,个人深度不够,只学习了一些皮毛,后面博客只求精,不求多;希望能坚持下来。加油!学习点:实现效果django与scrapy的创建setting中对接的位置和代码段scrapy_djangoitem使用scrapy数据爬取保存部分数据库设计以及问题部分django配置实现效果:djang...
继续阅读 >
2020
10-10
10-10
利用django创建一个简易的博客网站的示例
一、页面实现index.htmlbase.htmlpost.htmlheader.htmlfooter.html<!--index.html-->{%extends'base.html'%}<htmllang="en"><head><metacharset="UTF-8"><title>个人博客</title></head><body><h1>欢迎来到我的博客</h1>{%forpostinposts%}<hr><pstyle="font-family:微软雅黑"><ahref="/post/{{post.slug}}"rel="externalnofollow"rel="externalnofollow">{{post.title}}</a></p>{%endfor%}...
继续阅读 >
2020
10-10
10-10
Django路由层URLconf作用及原理解析
一、Django中路由的作用URL配置(URLconf)就像Django所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。fromdjango.conf.urlsimporturlurlpatterns=[url(正则表达式,views视图函数,参数,别名),]Django2.0版本中的路由系统已经替换成下面的写法(官方文档):fromdjango.urlsimportpathurlpatterns=[path...
继续阅读 >
2020
10-10
10-10
Django mysqlclient安装和使用详解
一、安装mysqlclient网上看到很过通过命令:pipinstallmysqlclient进行安装的教程,但是我却始终安装失败,遇到的错误千奇百怪,后来通过自己下载mysqlclient客户端终于安装成功;首先打开网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/并找到下面图中的内容部分:根据自己的需要,我选择的是最下边的cp38(目测cp38应该是C++版本,下载下来的文件通过pipinstall进行安装的时候会进行c++编译,如果你的电脑(我是Windows...
继续阅读 >
2020
10-10
10-10
Django修改app名称和数据表迁移方案实现
项目一开始的设计很重要,django中app的名称建议用小写我的博客由两个app组成,Blog和JiaBlog,总觉得不美观,想改成小写的oblog和blog,那么最关键的地方在于和orm数据表的映射把JiaBlog.articles改成blog.articles是终极目标,这里不推荐用django的migrate写一个sql批量生成mysql改表名的语句SELECTCONCAT('ALTERTABLE',table_name,'RENAMETOb',substring(table_name,5),';')FROMinformation_schema.tablesWhere...
继续阅读 >
2020
10-10
10-10
Django实现文章详情页面跳转代码实例
1.由于不支持博客首页到文章详情页的跳转,只能打开第一篇文章的详情页2.所以需要做以下工作:设计文章详情页的url,完善视图函数逻辑,实现首页跳转/blog/detail=>不能指定某一篇文章/blog/detail/1=>博客唯一id唯1的文章/blog/detail/2=>博客唯一id唯2的文章/blog/detail/3=>博客唯一id唯3的文章/blog/detail/......获取URL路径参数:<>页面跳转:href指定html3.4.view.py5.路由以上。以上就是本文的全部内容,希望对大家...
继续阅读 >
2020
10-10
10-10
如何基于Django实现上下文章跳转
图例如下1.先在detail.html中做好页面上下文链接;然后在view.py中进行数据绑定:2.访问验证以上以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。
继续阅读 >
2020
10-10
10-10
Django框架安装及项目创建过程解析
1、安装Django在命令行模式下使用pip工具来安装Django,pip工具的安装方法见此篇pipinstalldjango2、确认是否安装成功在Python交互模式下importdjangodjango.get_version()3、创建Django项目在命令行模式下django-admin.pystartprojectdemo注意:创建的项目在当前执行命令所在目录下4、创建APP在命令行模式下,进入上一步创建的项目目录demo下,里面包括同名子目录demo和manage.py文件,执行以下命令添加一个APP,名字为blogd...
继续阅读 >
2020
10-10
10-10
Django crontab定时任务模块操作方法解析
Djangocrontab定时任务安装pipinstalldjango-crontab配置在settings.py中INSTALLED_APP中添加'django_crontab'CRONJOBS=[('*/1****','echo"helloworld">/dev/null')]应用函数defdemo():你所要执行的业务逻辑CRONJOBS=[('*/1****','demo函数路径"')]查看已有的定时任务pythonmanage.pycrontabshow添加定时任务pythonmanage.pycrontabadd删除pythonmanage.pycrontabremove运行pythonmanage...
继续阅读 >
2020
10-10
10-10
Django日志及中间件模块应用案例
基于邮件通知的服务监控和告警系统主要功能点:配置专用日志格式记录耗时日志格式:'simple':{'format':'%(asctimme)s%(message)s'}处理器'statistics_handler':{'level':'DEBUG','class':'logging.handlers.RotatingFileHandler','filename':os.path.join(LOG_DIR,'backend.log')'maxBytes':'1024*1024*1024'#class参数如果日志大小超了会新建文件'backupCount':5#备份数'formatter':'simple',...
继续阅读 >
2020
10-10
10-10
Django nginx配置实现过程详解
django在引入第三方模块的时候保证服务的高可用,要设立一个备份接口,当主接口宕机时可以设置一个超市参数来使用备份的接口。nginx反向代理器,网站服务器,负载均衡基本命令sudonginx启动sudonginx-sstopsudonginx-squitsudonginx-sreopen关键配置模块events配置域:网络连接相关配置(I/O模块)server配置域:相关服务节点配置locationhttp配置域upstream配置域:反向代理配置域层次关系events{....
继续阅读 >