首页 > 其他分享 >5月8日总结

5月8日总结

时间:2023-05-12 22:56:39浏览次数:27  
标签:总结 Blog py count Django blog import

本文首发于公众号:Hunter后端

原文链接:Django笔记四十之运行Django环境的python脚本

这一篇笔记介绍如何在 Django 中运行脚本。

假设说我们要实现一个功能,需要获取 blog.models.Blog 这张表里的总数且使用 print() 输出。

如果代码逻辑很短,且是一次性执行的操作,我们可以在系统的根目录下使用 python3 manage.py shell 在 shell 中操作实现。

from blog.models import Blog
print(Blog.objects.all().count())

但是如果这个需求是一个很长的逻辑,且需要可以重复执行,那么应该如何操作呢?

首先,我们需要可以用到 Django 里的 Blog model,然后使用 model 的方式来进行查询。

我们可以将其写入一个文件,每次都使用 shell 来调用。
写入文件,在 shell 调用

比如,我们可以在 blog 创建一个 scripts 文件夹,然后创建一个 blog_script.py 文件:

blog/scripts/blog_script.py

from blog.models import Blog

def get_blog_count():
print(Blog.objects.all().count())

然后每次调用的时候就进入 python3 manage.py shell 操作:

from blog.scripts.blog_script import get_blog_count

get_blog_count()

直接运行脚本

如果我们想创建一个文件,然后直接运行该脚本,那么就需要在脚本中引入当前 Django 系统环境的一些参数和变量,可以直接在系统根目录下创建一个 blog_script.py 文件:

blog_script.py

import django, os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hunter.settings")
django.setup()

from blog.models import Blog

if name == "main":
print(Blog.objects.count())

然后我们在系统根目录下直接执行该脚本:

python3 blog_script.py

这个文件目前只有放在系统的根目录下才可以运行,但是如果太多的脚本都放到系统根目录下也不太好,所以我们如果有这种脚本一般都可以放到对应的 application 的 scripts 文件夹下。

如果我们想要直接在 blog/scripts/ 下直接运行该脚本的话,则需要在我们的脚本中添加 Django 系统的路径,假设我们的 Django 系统名为 hunter,在服务器的路径为:/Users/xxxx/hunter/,我们可以如下操作:

blog/scripts/

import django, os, sys

django_path = "/Users/xxxx/hunter/"
sys.path.extend([django_path])
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hunter.settings")

django.setup()

from blog.models import Blog

if name == "main":
print(Blog.objects.count())

标签:总结,Blog,py,count,Django,blog,import
From: https://www.cnblogs.com/lmyy/p/17396481.html

相关文章

  • 5月12日总结
    对工厂模式一次感悟从开始接触设计模式的“什么都可以用设计模式去设计”,到接触一段时间之后的“用什么设计模式,直接莽就是了”。一直到现在,对设计模式的认知一直都处在一个模糊的状态。之前虽然也自己尝试在项目中使用一些设计模式,但总是体会不到设计模式在实际使用中的好处,直到......
  • 5月11日总结
    初级篇AOP是什么?Aspect-orientedProgramming(AOP)即面向切面编程。简单来说,AOP是一种编程范式,允许我们模块化地定义横跨多个对象的行为。AOP可以帮助我们将应用程序的关注点分离,使得代码更加清晰、易于维护和扩展。大白话:在方法执行前后运行指定代码,比如日志记录、事务开......
  • 第一阶段冲刺总结(不被踢的理由)
    本组是第21组,组内的人数为三人,团队选择的项目开始是智能排班系统,之后考虑到其他情况换成了智能家居系统,第一阶段的冲刺之后我的组内排名是第三名。在第一阶段的工作之中,我做的工作的大多不是能看到太多的实际性内容,或者说更多情况下做的是团队的总体统方面:    在第一个......
  • 每日总结-23.5.12
    <%HttpSessionhttpSession=request.getSession();//Stringtea_id=(String)httpSession.getAttribute("id_");Stringtea_id=request.getParameter("id_");Thesqlthesql=newThesql();request.setCharacterEncoding(......
  • 2023.5.12每日总结
    packageshiyan;importjava.sql.*;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassAllMethods{publicConnectionconnect;publicAllMethods()throwsException{Class.forName(&q......
  • 5.12每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd&qu......
  • 总结
       我是希望能做对的队员之一,第一阶段已经完成,绩效评估我是团队中的最后一名,总结了一下,共有以下几点做的不好:  1.我在这门学科中基础比较差,在一起讨论的时候往往更不上他们两个的节奏;  2.敲代码速度太慢,他们完成相应的任务还会帮助我做我的任务,以至于我的工作量是最......
  • 每日总结 5.12
    今日进行了web实验。对于之前所学习的增删改查进行熟练学习。1)    开MySQL,新建一个数据库。2)    新建一个数据库表。3)    在表中增加若干记录,作为初始数据。4)    打开Eclipse软件,新建一个名为Lab03的Web项目,并设置其部署程序为Tomcat。5)    在......
  • 每日总结2023-05-12
    今天完成了dialog的简易模式:privatevoidshowQieDialog(){AlertDialog.Builderbuilder=newAlertDialog.Builder(this);builder.setTitle("切换账号提示").setMessage("请确认切换账号").setPositiveButton("......
  • 5.12每日总结
    今天学习了nextInt、nextFloat、nextDoublenext():用于读取String字符串数组,以空格划分(只读取输入直到空格),在读取后将光标指向本行nextLine():用于读取String字符串数组,读取包括单词之间的空格和除回车以外的所有符号,在读取后将光标指向下一行publicstaticvoidmain(String[]arg......