-
Notifications
You must be signed in to change notification settings - Fork 99
Open
Labels
Description
One always has time enough, if one will apply it well.
0x01 DSScan
- 模板文件
open.html- 由于其中需要表单用于提交目标
URL至数据库 ,所以新建forms.py表单函数
- 由于其中需要表单用于提交目标
- 表单函数
forms.pyDjango中表单提供了两种创建表单的方式forms.Form- 最基本的创建方式,自定义表单的各种属性
form django import forms class UrlForm(forms.Form): url = forms.CharField() urls = forms.CharField(required=False, widget=forms.Textarea) def __unicode__(self): return self.url
widget定义urls为多行表单(默认CharField为单行)
forms.ModelForm- 如果表单贴近数据模型
Model,那么可以用forms.ModelForm来节省大量代码(即:数据模型中的字段恰好都需要表单来提交时,使用ModelForm即可节省代码) - 同时
forms.ModelForm也支持自定义表单的属性
from django import forms from .models import Url class UrlForm(forms.ModelForm): class Meta: model = Url fields = ('url', 'urls')
- 此处的
urls即数据模型Url函数中定义的TextField,无需widget定义多行
- 如果表单贴近数据模型
- 这里表单就需要将提交的
URL保存至数据库,用第一种方式自定义创建表单即可
- 视图函数
views.py- 表单函数定义完成后,逻辑部分就需要视图函数处理
- 如果
HTTP以POST方式提交,那么就将表单内容保存至数据库
from django.shortcuts import render from .forms import UrlForm def url_sql(request): if request.method == 'POST': form = UrlForm(request.POST) if form.is_valid(): url = form.save(commit=False) url.save() form.save() else: form = UrlForm() return render(request, 'sqliscan/open.html', {'form': form})
- 逻辑部分处理完成,模板文件
open.html就需要显示这个表单
- 如果
- 表单函数定义完成后,逻辑部分就需要视图函数处理
- 模板文件
open.html- 表单在模板文件中显示需要
csrf_token
- 表单在模板文件中显示需要