项目app下创建 forms.py
from django import forms
class add_asset_Form(forms.Form):
'''
资产添加表单
'''
group_name = forms.CharField(max_length=64)
host_name = forms.CharField(max_length=64)
ip_name = forms.CharField(max_length=64)
port_name = forms.CharField(max_length=64,)
user_name = forms.CharField(max_length=64)
passwd_name = forms.CharField(max_length=64)
views.py引用表单
from .forms import add_asset_Form
def add_asset(request):
asset_db_all_info = select_asset_op()
if request.method == 'POST':
form = add_asset_Form(request.POST) # 接收表单数据
# resolt = {}
if form.is_valid(): # 判断表单数据不为空
group_n = request.POST.get('group_name') # 获取表单数据中指定key的值
name_n = request.POST.get('host_name')
host_n = request.POST.get('ip_name')
port_n = request.POST.get('port_name')
user_n = request.POST.get('user_name')
passwd_n = request.POST.get('passwd_name')
print(group_n, name_n, host_n, port_n, user_n, passwd_n)
add_asset_info = add_asset_op(group_n, name_n, host_n, port_n, user_n, passwd_n) # 这是一个添加数据库的函数,可以忽略
if add_asset_info == 0:
resolt = '资产添加成功'
return render(request, 'asset/asset.html', {
'aaa': resolt,
'asset_db_all_info': asset_db_all_info,
})
else:
resolt = '资产添加失败,请检查主机名是否重复!'
return render(request, 'asset/asset.html', {
'aaa': resolt,
'asset_db_all_info': asset_db_all_info,
})
else:
resolt = '请输入完整信息'
return render(request, 'asset/asset.html', {
'aaa': resolt,
'asset_db_all_info': asset_db_all_info,
})
else:
print(asset_db_all_info)
# 如果是get请求,直接请求html页面,html页面会转为post请求
return render(request, 'asset/asset.html', {
'asset_db_all_info': asset_db_all_info,
})
asset.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>资产管理</title>
</head>
<body>
<script type="text/javascript">
if ( window.history.replaceState ) {
window.history.replaceState( null, null, window.location.href );
}
</script>
<div>
<p>
<a>资产管理</a>
<a href="/index/index_1/">返回首页</a>
</p>
</div>
<form action="{% url 'assetmanage:addaseet' %}" method="post"> # get转为post请求将用户输出存入变量传递给assetmanage:addaseet 的 views
{% csrf_token %}
<div>
<p>
<label for="group">请输入组名</label>
<input id="group" type="text" name="group_name">
</p>
<p>
<label for="name">请输入主机名</label>
<input id="name" type="text" name="host_name">
</p>
<p>
<label for="host">请输入主机IP</label>
<input id="host" type="text" name="ip_name">
</p>
<p>
<label for="port">请输入主机端口</label>
<input id="port" type="text" name="port_name">
</p>
<p>
<label for="user">请输入主机用户名</label>
<input id="user" type="text" name="user_name">
</p>
<p>
<label for="passwd">请输入主机密码</label>
<input id="passwd" type="password" name="passwd_name">
</p>
<p>
<input type="submit" value="提交"><br/>
</p>
</div>
</form>
<p style="color: red">
{{ aaa }}
</p>
<form action="{% url 'assetmanage:addaseet' %}">
{% csrf_token %}
<div>
<table border="1">
<tr>
<th width="30px">ID</th>
<th width="100px">组名</th>
<th width="100px">主机名</th>
<th width="150px">IP</th>
<th width="50px">端口</th>
<th width="50px">用户名</th>
<th width="200px">密码</th>
<th width="100px">详细信息</th>
<th width="100px">删除记录</th>
</tr>
{% for k in asset_db_all_info %}
<tr>
<td width="30px">{{ k.id }}</td>
<td width="100px">{{ k.group }}</td>
<td width="100px">{{ k.name }}</td>
<td width="150px">{{ k.host }}</td>
<td width="50px">{{ k.port }}</td>
<td width="50px">{{ k.user }}</td>
<td width="200px">{{ k.passwd }}</td>
<td width="100px" align="center">
{# <button><a href="/aseetmanage/upasset/{{ k.name }}">更改</a></button>#}
<button><a href="/hostinfo/hostinfo/{{ k.name }}">详细信息</a></button>
</td>
<td width="100px" align="center">
<button><a href="/aseetmanage/deasset/{{ k.name }}">删除</a></button>
</td>
</tr>
{% endfor %}
</table>
</div>
</form>
</body>
</html>