Django 表单

项目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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值