django入门-搭建字数统计网站
最近工作需要在数据分析系统中增加一些机器学习有关的工具,因为部门里面有些人不会python,为了方便大家使用,所以用django搭建一个网站。
安装django
1 | pip install django |
新建项目
1 | django-admin startproject wordcount2 |
启动本地服务器
进入新建的项目文件夹
1 | python manage.py runserver |
如果你看到这个页面,就表示你的django安装成功啦!
新建主页
在wordcount2文件夹中新建templates文件夹,用于存放html文件
在templates文件夹中新建home.html文件
1 |
|
- 配置settings.py文件
在这里我们需要配置settings.py文件,用来告诉django,我们的html文件在哪。
- 新增function.py文件
在wordcount2文件夹中新增function.py文件,并且新增home函数。
1 | def home(request): |
render函数:
1 | request: 是一个固定参数, 没什么好讲的。 |
- 配置在urls.py文件
在urls.py文件中,需要我们配置网站地址以及映射的函数。
在这里首页已经配置完成啦!
增加统计结果网页
当用户把需要统计的文字填入文字框中,并且按统计按钮之后,我们的页面需要跳转到统计结果的页面中。
配置home.html文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字数统计</title>
</head>
<body>
<h1>字数统计</h1>
<form action="count">
<textarea cols="100" rows="25" name="text">在此输入文本</textarea>
<br>
<input type="submit" value="统计">
</form>
<a href="about">关于本页</a>
</body>
</html>在form标签中添加action=”count”
增加count.html文件
1
2
3
4
5
6
7
8
9
10
11
12
<html lang="en">
<head>
<meta charset="UTF-8">
<title>统计结果</title>
</head>
<body>
<h1>统计结果,总字数为{{count}}字</h1>
<h2>你的文本</h2>
{{text}}
</body>
</html>配置urls.py文件
- 在function中新增count函数
1
2
3
4def count(request):
user_text = request.GET['text'] ##获取用户输入的文字
total_count = len(user_text) ##统计字数
return render(request,'count.html',{'count':total_count,'text':user_text})
在这里需要注意的是我们通过render函数向html传递参数的时候需要以字典的形式传递。
{‘count’:total_count,’text’:user_text}
如果没有出错的话,当你点击统计之后会跳转到这个页面
字数统计
完整的count函数代码
1 |
|
上面的代码就是把用户输入的文字通过循环的方式统计字数,然后把字典转换成dataframe,传递给html。
- 完整的count.html
1 |
|
关于django自动转义
Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。比如:
1 |
|
其中第二行我们关闭了Django的自动转义。
我们还可以通过1
{%autoescape off%}
的方式关闭整段代码的自动转义,比如下面这样:
1 |
|
增加about页面
我们需要新增一个about页面用于告诉用户,我们这个页面是用来干什么的,步骤与之前的都差不多。
增加about.html
1
2
3
4
5
6
7
8
9
10
11
12
<html lang="en">
<head>
<meta charset="UTF-8">
<title>关于本页</title>
</head>
<body>
<h1>关于本页</h1>
<h2>本网站可以统计字数,并且会按频次降序排列</h2>
<a href="..">回到主页</a>
</body>
</html>配置urls.py文件
配置function文件,新增about函数
1 | def about(request): |
在这里一个简单的字数统计网站就搭建好啦!
完整项目代码:https://github.com/dik111/word_count