用django统计代码行数+注释行数
实现统计代码行数:
1、首先在url.py中配置
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^upload/', views.upload), ]
2、写视图函数:实现统计代码的行数以及注释行数,其中以.py文件为例,注释是以“#”或者““”“”“””开头的,去掉空格
from django.shortcuts import render,redirect # Create your views here. def upload(request):
if request.method == "POST":
file_obj = request.FILES.get("file")
with open(file_obj.name, "wb") as f:
for chunk in file_obj.chunks():
f.write(chunk)
# 已经将文件保存在服务端,现在开始进行代码统计
code_line = 0
comment_line = 0
flag = False
with open(file_obj.name, "r", encoding="utf-8") as f2:
for line in f2:
if line.strip():
if flag and not line.strip().startswith('"""'):
comment_line += 1
else:
if line.strip().startswith("#"):
comment_line += 1
elif line.strip().startswith('"""'):
if not flag:
flag = True
else:
flag = False
comment_line += 1
else:
code_line += 1
return render(request, "show.html", {"filename": file_obj.name, "code_line": code_line, "comment_line": comment_line})
return render(request, "upload.html")
3、写html代码:
upload.html的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传代码</title>
<link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.css">
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group" style="margin-top: 40px;margin-left: 200px;">
<input type="file" name="file" id="exampleInputFile">
</div>
<button type="submit" class="btn btn-success" style="margin-left: 200px">提交</button>
</form>
</body>
</html>
show.html的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>代码数</title>
</head>
<body>
<ul style="margin-left: 200px;margin-top: 40px;">
<li>文件名:{{filename}}</li>
<li>代码行数:{{code_line}}</li>
<li>注释行数:{{comment_line}}</li>
</ul>
</body>
</html>
引入bootstrap样式的时候,一定要配置static:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
用django统计代码行数+注释行数的更多相关文章
- Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)
要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...
- 统计代码git提交的行数
$ git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ a ...
- 删除C代码中的注释行【状态机】
今天在学ruby时遇到的一个经典的题目,一直都知道但从来没有实现过.呈上状态机,代码略.(写代码的时候还是需要注意一些小情况的)
- C++统计代码注释行数 & 有效代码行数 & 代码注释公共行 & 函数个数
问题来源,在14年的暑假的一次小项目当中遇到了一个这样的问题,要求统计C++代码的注释行数,有效代码行数,代码注释公共行数,以及函数个数. 下面稍微解释一下问题, 1)注释行数:指有注释的行,包括有代 ...
- C++实现文件内字符数、单词数、行数的统计
先给出github上的代码链接以及项目需求 1. 项目简介 这个项目的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处 ...
- java语言实现对程序设计语言源文件统计字符数、单词数、行数及其他拓展功。
本次作业Github项目地址:https://github.com/YiChenglong2018/WordCount 一.项目简介 本项目的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行 ...
- python统计代码总行数(代码行、空行、注释行)
我们在工作或学习代码的过程中,经常会想知道自己写了多少行代码,今天在项目环境写了个脚本统计了项目代码的数量. 功能: 1.统计代码总行数 2.统计空行数 3.统计注释行数 # coding=utf-8 ...
- 007-使用python统计代码行数,空行以及注释
# 自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来 1.打开文件方法 1.1 以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符 f ...
- 使用 cloc 统计代码行数
可能大家都知道用 `wc -l` 命令进行代码行数统计,但是它会将代码中的注释.空行所占用的文本行都统计在内.如果想查看一个 tar 包或一个项目目录中“实际”的代码行数并且不愿意自己去写一个脚本来做 ...
随机推荐
- 【PyQt5-Qt Designer】QComboBox-下拉列表框
知识点: 1.QComboBox下拉列表框的一些常用方法 2.下拉列表框常用信号使用方法 案例:选中下拉框选项时触发信号 #[str] 表示comboBox中的选择框内容如A B C D 等 self ...
- Java设计模式之模板模式及使用场景
模板模式,顾名思义,就是通过模板拓印的方式. 定义模板,就是定义框架.结构.原型.定义一个我们共同遵守的约定. 定义了模板,我们的剩余工作就是对其进行充实.丰润,完善它的不足之处. 定义模板采用抽象类 ...
- Java 二进制数据转成文件
SqlServer数据库中,存储文件的字段的类型是image,对应的Java类型是byte[],下面的函数将演示如何把读取出来数据放入指定目录.当然,首先需要从数据库读出,然后调用该方法. impor ...
- 批量删除以及将String数组转换成Integer数组的奇淫技巧
首先在pom.xml文件添加依赖: <!-- bean工具 --> <dependency> <groupId>commons-beanutils</grou ...
- 关于ios下字体描边的一个细节
转载请注明,来自:http://blog.csdn.net/skyman_2001 CGContextSetTextDrawingMode(context, kCGTextStroke); ...
- 火币网API文档——WebSocket API简介
WebSocket API简介 WebSocket协议是基于TCP的一种新的网络协议.它实现了客户端与服务器之间在单个 tcp 连接上的全双工通信,由服务器主动发送信息给客户端,减少了频繁的身份验证等 ...
- iot-hub运行在虚拟上
ng build gradlew build java -jar iot-hub-0.0.1-SNAPSHOT.jar 后台运行 nohup java -jar iot-dm-0.0.1-SNAP ...
- Http post/get
什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request ...
- React.createClass 、React.createElement、Component
react里面有几个需要区别开的函数 React.createClass .React.createElement.Component 首选看一下在浏览器的下面写法: <div id=" ...
- 关于RBAC的文章
权限系统与RBAC模型概述 RBAC权限管理模型 摘自慕课网的RBAC