Django
MaoningGuan
Python、爬虫、机器学习、物联网、C/C++开发
展开
-
Django使用shell方式删除数据库中的数据
在Django项目中,使用shell方式删除数据库中的数据:1、使用python manage.py shell进入python命令行工具:python manage.py shell2、导入目标对象的Model,如要删除数据库中blog文章的分类:from blog.models import Category3、获取分类数据,再删除:categories = Category.objects.filter(name__contains='cate') # 获取分类名称中包含"cate"原创 2020-06-23 11:14:03 · 844 阅读 · 0 评论 -
在Django模板文件中对字符串的操作
Django模板文件是HTML文件,在该HTML文件中对字符串变量的一些操作函数,示例:{{ comment.content | striptags | slice:"20" | add:"..." }}代码解释:以上代码,是获取comment.content字符串的前20个字符,并且在其末尾拼接"…"字符串。在Python中的实现如下:comment.content[:20] + '...'...原创 2020-06-20 17:11:05 · 1888 阅读 · 0 评论 -
在Django中如何去除HTML文本字符串中的HTML标签
1、在Python中去除HTML标签:desc = strip_tags(content_html) # strip_tags去掉HTML文本的全部HTML标签2、在Django模板文件中去除HTML标签:Django模板文件是HTML文件,所以在HTML文件中,可以使用striptags来去除HTML标签:{{ comment.content | striptags }}comment.content是包含HTML标签的HTML文本。...原创 2020-06-20 17:03:20 · 832 阅读 · 1 评论 -
Django实现文章访问次数的统计
实现方法:1、根据用户的浏览器生成唯一的用户id,并且把其放置在用户的浏览器cookie中。(1)我们可以使用Python内置的uuid库来生成唯一的用户id:import uuiduid = uuid.uuid4().hex(2)在一个Web系统中,显示是在请求的越早阶段鉴定/标记用户越好。所以我们在Django系统的middleware中去给用户设置唯一的id,并且放置在用户的浏览器cookie中。因此,我们在文章对应的APP目录下新建middleware文件夹,并在middleware文件原创 2020-06-19 23:21:40 · 1459 阅读 · 0 评论 -
Django中自定义标签的使用
问题描述:在Django开发中,我们增加一个功能的时候,如:评论功能,因为需要在不同的页面下实现展示评论和提交评论的功能,所以可能需要修改不同页面对应的视图函数,这样极大的提高了代码的维护成本。问题解决:这个时候,我们可以借助Django的自定义标签来实现评论的功能,把评论功能对应的数据操作放在标签函数中去实现,这样就可以减少代码的耦合,降低维护成本。自定义标签的使用:(1)评论Comment对应的model定义:models.pyfrom django.db import models原创 2020-06-18 10:48:39 · 634 阅读 · 0 评论 -
Django中表单Form的使用
在Django中对表单form的定义涉及三个文件:1、model.py:定义form对应到数据库中的表,如:from django.db import models# Create your models here.from django.db import modelsclass Student(models.Model): SEX_ITEMS = [ (1, '男'), (2, '女'), (0, '未知'), ]原创 2020-06-17 20:28:53 · 582 阅读 · 1 评论 -
Django中class-based view的使用示例
Django中class-based view的使用示例代码如下:""" class-based view """from django.db.models import Qfrom django.shortcuts import get_object_or_404from django.views.generic import ListView, DetailViewfrom config.models import SideBarfrom .models import Post, Tag原创 2020-06-17 16:12:44 · 338 阅读 · 0 评论 -
Django开发流程简述
Django开发流程:原创 2020-06-16 20:20:33 · 248 阅读 · 0 评论 -
Django中判断用户是否登陆
1、在View视图函数中的检测方法:if request.user.is_authenticated():# 用户已登陆else:# 用户未登陆2、在HTML模板文件中的检测方法:先要确保request对象在模板的context中,即在settings.py文件配置:然后即可使用用RequestContext来判断,代码如下:{% if request.user.is_authenticated %}用户已登陆。{% else %}用户未登陆。{% endif %}...原创 2020-06-16 19:35:40 · 3334 阅读 · 0 评论 -
在Django模板文件中访问数据
问题描述:在Django的HTML模板文件中,我们如何访问View视图函数传进来的变量呢?使用方法总结:1、访问变量:{{ variable_name }}2、for循环{% for post in posts %}//其他代码{% endfor %}3、if分支结构{% if tag %}标签列表页:{{ tag.name }}{% elif category %}分类列表页:{{ category.name }}{% else %}首页{% endif %}4、原创 2020-06-16 19:03:27 · 221 阅读 · 0 评论 -
Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化
问题描述:对于Django中的“N+1”问题,如:posts = Post.objects.all()for post in posts: # 产生1次数据库查询所有的post print(post.owner.username) # 产生1次额外的外键数据库查询 print(post.category.name) # 产生1次额外的外键数据库查询这样会导致线性的SQL查询,如果对象数量N太多,每个对象中有k个外键字段的话,就会导致Nk+1次SQL查询。在本例中,因为有N个post对象,原创 2020-06-14 15:47:22 · 138 阅读 · 0 评论 -
Django如何寻找访问HTML模板文件?
问题描述:在Django中,我们在views视图函数中配置要访问的模板路径。如下:def post_list(request, category_id=None, tag_id=None): return render(request, 'list.html', context={'name': 'post_list'})在上面的视图函数中,我们设置要访问名为’list.html’的模板文件。问题分析:当我们在浏览器中输入对应的URL,调用post_list这个视图函数之后,Djang原创 2020-06-14 12:05:31 · 940 阅读 · 0 评论 -
Django在同一页面编辑关联对象的数据
问题描述:在Django中,我们想在同一页面编辑关联对象的数据。如:在博客的分类编辑页中,新建或者修改该分类下的文章。代码如下:from django.contrib import adminfrom .models import Post, Category# 在分类列表页面增加编辑文章class PostInline(admin.TabularInline): # StackedInline样式不同 fields = ('title', 'desc') # 要显示编辑的原创 2020-06-13 00:46:31 · 440 阅读 · 0 评论 -
django项目中如何运行test模块?
Django项目单元测试:在开发Django项目中,有时候我们需要在APP应用目录的test.py中书写单元测试的代码,来测试我们的项目功能。当我们在test.py完成测试代码之后,只需要在激活的Django虚拟环境中(使用virtualenv模块来创建和管理虚拟环境),进入到当前项目的根目录,运行:python manage.py test test.py文件对应的app应用的名称...原创 2020-06-09 19:20:19 · 1899 阅读 · 0 评论