Django
zju_cxl
需有广博之学识,强健之体魄与自乐其中之爱好。
展开
-
Django 端口被占用
Django默认的8000端口被占用啦,这就需要我们从外部干预,杀死该进程。我电脑是Mac,和Linux指令差不多。1 查看端口占用情况(8000位对应端口号)sudo lsof -I :80002 找到对应的pid,杀掉该进程sudo kill -9 13681再次查看该端口,就没有进程运行啦!...原创 2020-06-23 13:10:51 · 712 阅读 · 0 评论 -
Django 定期更新数据库数据(使用django-crontab实现)
1.安装pip install django-crontab2.添加app名称到 settings.py中INSTALLED_APPS = ('django_crontab',#这个不是app的名字,必须要添加到前面,不能接着app后面添加,否则会报错...)3.接下来创建定时任务可以分成两种,一种是执行自定义的mange.py的命令,另一种是执行自定义函数。我选择的方法是自定义函数。首先在原来的app 中(与view.py同级)新建一个update1day.py,名字任.原创 2020-06-21 16:29:53 · 2744 阅读 · 2 评论 -
Django 登陆注册模块
Django自带auth,非常的好,那就利用auth来写一个登陆注册模块吧!auth的基本功能如下:from django.contrib import authdef demo(request): print(request.user) # 默认匿名用户对象 AnonymousUser print(request.user.id) # None print(request.user.username) # "" print(request.user.is_active) #原创 2020-06-21 11:54:02 · 986 阅读 · 0 评论 -
Django Ajax下载文件(动态文件下载实现)
前端埋一个隐藏的表单,用于传值:<form id="hidden_form"> {% csrf_token %} <input type="hidden" id="flag" name="flag"> <input type="hidden" id="country" name="country"> <input type="hidden" id="datatype" name="datatype"></for.原创 2020-06-20 23:16:49 · 1944 阅读 · 0 评论 -
Django admin后台美化(极其简单)
使用django-simpleui模块;直接pip安装即可:pip install django-simpleui然后在setting.py中注册即可:INSTALLED_APPS = [ 'simpleui', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.co原创 2020-06-19 15:13:28 · 4919 阅读 · 1 评论 -
Django 使用原生SQL操作sqlite3数据库
有一些复杂的查询,用orm实现比较复杂,故可以采用sql语句来实现查询。使用游标实现: from django.db import connection cursor = connection.cursor() cursor.execute("select * from COVID_19Analyse_country") for row in cursor.fetchall(): print(row)...原创 2020-06-19 01:39:43 · 716 阅读 · 0 评论 -
Django 建立索引
数据库数据规模挺大的,建立索引以加速查询。通过db_index和Meta index选项给数据表字段建立索引使用索引可快速访问数据库表中的特定信息。数据库索引好比是一本书前面的目录,没有索引目录的话,你访问书中某个页面需要从第1页遍历到最后一页,如果有目录,你可以快速地根据目录查找到所需要的页面。Django项目中如果你需要频繁地对数据表中的某些字段(如title)使用filter(), exclude()和order_by()方法进行查询,我们强烈建议你对这些字段建议索引(index), 提升查询原创 2020-06-18 00:22:28 · 4194 阅读 · 0 评论 -
Django Ajax文件下载
普通的文件下载在前面的博客有提到,下面介绍Ajax实现的文件下载:AJAX发送参数到后台后,后台处理后,传数据到前台,Ajax在success里面构建了一个from表单, 当后台传来的是文件时,自动点击提交按钮,文件就会被下载。代码如下:<script> $.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}'}, }); $("#submit").click(function原创 2020-06-18 00:02:23 · 934 阅读 · 0 评论 -
Django 文件下载一直未默认名称,设置header不管用(中文名无法使用,英文名正常)
原因是不同浏览器对于下载文件文件名的编码解析格式不一样,常用浏览器解析格式如下:IE浏览器,采用URLEncoder编码 Opera浏览器,采用filename*方式 Safari浏览器,采用ISO编码的中文输出 Chrome浏览器,采用Base64编码或ISO编码的中文输出 FireFox浏览器,采用Base64或filename*或ISO编码的中文输出如果硬来的话就是在后台把文件名先 encode 成 bytes,再判断浏览器,根据不同的浏览器用相应的编码decode一下就好了。.原创 2020-06-17 17:20:01 · 466 阅读 · 1 评论 -
Django 文件下载,解决excel文件乱码
模板:<a href="{% url 'Analyse:downFile' %}">国内.xlsx</a>urls:path('downFile/', views.download_file, name='downFile'),视图:def download_file(request): path = os.path.abspath(os.path.dirname(__file__)) the_file_name = '国内.xlsx'原创 2020-06-17 16:29:01 · 901 阅读 · 2 评论 -
Django 输入python manage.py migrate不能新建表
一般模型更改时执行一下两条指令:1. python manage.py makemigrations2.python manage.py migrate但是我今天是把两个表通过可视化工具给删掉了,再执行这两条语句就不好使了。情况如下:为什么生成不了新的表格呢?因为系统自动生成的有一张表django_migrations专门用来记录你的python manage.py makeigrations操作的,与项目根目录下migrations文件夹中的文件是一一对应的。即如下表:.原创 2020-06-15 15:20:15 · 3256 阅读 · 0 评论 -
Django 警告Not Found: /favicon.ico的解决
配置favicon.ico,即可解决:{% load staticfiles %}<link REL="SHORTCUT ICON" HREF="{% static "images/favicon.ico" %}"/>需要添加静态文件:原创 2020-06-15 10:00:45 · 2292 阅读 · 0 评论 -
Django HTML邮件
subject, from_email, to = '来自123的测试邮件', '123@qq.com', '123@hrbust.edu.cn' text_content = 'welcome!' html_content = '<p>欢迎访问<a href="http://www.baidu.com" target=blank>百度</a>,</p>' msg = EmailMultiAlternatives(subjec...原创 2020-06-15 00:13:53 · 250 阅读 · 0 评论 -
Django 邮件发送问题smtplib.SMTPServerDisconnected: Connection unexpectedly closed
该错误出现的问题是:SSL选项未选择setting.py添加以下代码(以QQ邮箱为例子):EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'EMAIL_HOST = 'smtp.qq.com'EMAIL_PORT = 465EMAIL_HOST_USER = '123456@qq.com' #邮箱EMAIL_HOST_PASSWORD = 'xxxxx' #授权码EMAIL_USE_SSL = True # 和SMT原创 2020-06-15 00:09:17 · 2305 阅读 · 2 评论 -
Django Ajax CSRF认证(解决Post无法使用情况)
CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF。是一种对网站的恶意利用。XSS假如A网站有XSS漏洞,访问A网站的攻击用户用发帖的方式,在标题或内容等地方植入js代码,这些代码在某些场景下会被触发执行(比如点回帖时)。当A网站的其它用户点回帖后,js运行了,这段js按道理可以做任何事,比如将用户的cookie发到指定服务器(攻击者所有),这样攻击者就可以使用.原创 2020-06-14 20:35:57 · 962 阅读 · 0 评论 -
Django Ajax返回JSON(字典,列表)
Django返回JSON的操作如下:urls.py先注册路由: path('list/', views.ajax_list, name='ajax_list'), path('t/', views.home, name='tt'), path('add/', views.add, name='add'),视图层views.py中写界面:def ajax_list(request): a = list(range(100)) return JsonRe原创 2020-06-14 20:23:23 · 1890 阅读 · 0 评论 -
Django Ajax-基本局部刷新实现,以加法为例
现在写Web,不用Ajax怎么可以呢!!用Django肯定不能完全都让Django加载呀,而且老是跳页面对用户也不好!!因此,我们采取Ajax来实现:以加法为例子。urls.py中注册路由: path('add/', views.add, name='add'),视图层views.py将界面写一下:def index(request): return render(request, 'tttt/index.html')def add(request):原创 2020-06-14 20:07:43 · 2309 阅读 · 0 评论 -
Django 使用静态文件(图片,CSS,JS代码等)
像图片,JS,CSS等都是静态文件,不属于模版的范围,因此Django在使用静态文件是需要做些变化:操作如下:先在app目录下建立static文件夹,然后再以app为名建立一个文件夹(与模板templates建立同理)。目录如下:在该文件夹下写静态文件即可。在模板html中,引入静态文件需要如下操作:{% load static %}以detail.html引入style.css为例子,需要如下操作:<link rel="stylesheet" type="te原创 2020-06-14 19:07:10 · 754 阅读 · 0 评论 -
Django 传递JSON至JS处理
学习来源:Django传值给前端非ajax,这里是将json与网页一次性全部发给浏览器端,不是异步传输。模版html:<!DOCTYPE html><html><head><meta charset="utf-8"><title> </title><script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></scri原创 2020-06-14 18:59:07 · 1007 阅读 · 0 评论 -
Django 添加一个app的一般流程
pycharm先在终端,Terminal中输入:(pycharm自带虚拟终端,不然使用自带的终端,cd路径到项目路径下,和manage.py同级)python manage.py startapp tttttttt为你的app名字,这个app类似于一个插拔的思想,即插即用。settings.py中注册app:INSTALLED_APPS = [ 'tttt.apps.TtttConfig', 'django.contrib.admin', 'django.con原创 2020-06-14 18:53:43 · 627 阅读 · 0 评论 -
Django 模型(model)--2
学习教程来源:Django学习1.多对一关系多对一的关系,通常被称为外键。外键字段类的定义如下:class ForeignKey(to, on_delete, **options)[source]on_delete 级联删除CASCADE:模拟SQL语言中的ON DELETE CASCADE约束,将定义有外键的模型对象同时删除!(该操作为当前Django版本的默认操作!) PROTECT:阻止上面的删除操作,但是弹出ProtectedError异常 SET_NULL:将外键字段设为原创 2020-06-13 04:40:37 · 321 阅读 · 0 评论 -
Django 模型(model)--1
这里可以选择在执行migrate之前,先执行python manage.py makemigrations让修改动作保存到记录文件中,方便github等工具的使用。当你每次对模型进行增、删、修改时,请务必执行命令python manage.py migrate,让操作实际应用到数据库上。如果不执行以上语句,模型的改变事体现不到数据库上去的。...原创 2020-06-13 04:03:05 · 260 阅读 · 0 评论