s9_part2_fe_d48_form.md

Posted rootid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了s9_part2_fe_d48_form.md相关的知识,希望对你有一定的参考价值。

[TOC]


#s9_part2_fe_d47
pycharm小技巧:
输入
li*4>a>{$}
按tab键自动补全可以看到多个列表自动生成

[返回顶部](#top)

#s9_part2_fe_d48_form
##form提交表单

```

<form method="post" action="http://127.0.0.1:8000" enctype="multipart/form-data">
    <p>
        username:
        <input type="text" name="username" placeholder=‘请输入用户名‘>
        <!--value设置默认值,placeholder设置占位内容-->
    </p>
    <p>
        password:
        <input type="password" name="password">
    </p>
    <!-- 单选框 -->
    <p>
        男<input type="radio" name="gender" value="0">
        女<input type="radio" name="gender" value="1">
        保密<input type="radio" checked name="gender" value="2">
    </p>
    <!-- 复选框 -->
    <p>爱好:
        <input type="checkbox" name="hobby" value="basketball">篮球
        <input type="checkbox" name="hobby" value="football">足球
        <input type="checkbox" name="hobby" value="badminton">羽毛球
    </p>
    <!--日期-->
    <p>birthday
        <input name="birthday" type="date">

    </p>
    <!-- 下拉菜单之不分组的select -->
    <p>
        <select id="s1" name="province">
            <option value="beijing">北京</option>
            <option value="sichuan">四川</option>
            <option value="shanghai">上海</option>
        </select>

    </p>
    <p>
        <!-- 下拉菜单之分组的select -->

        <select id="s2" name="city">
            <optgroup label="北京"></optgroup>
            <option value="cp">昌平</option>
            <option value="hd">海淀</option>
            <option value="cy">朝阳</option>
            <optgroup label="四川"></optgroup>
            <option value="cd">成都</option>
            <option value="ls">乐山</option>
            <option value="my">绵阳</option>
        </select>
    </p>
    <!-- textarea -->
    <p>
        <textarea name="descrition" id="" cols="30" rows="10">这里可以写默认初始值</textarea>
    </p>

    <!-- 上传文件 -->
    <p>上传头像
        <input name="img" type="file">
    </p>
    <p>
        <input type="submit">
        <!--如果需要自定义按钮显示,可以加value属性<input type="submit" value="提交XXX"> -->
    </p>
</form>

```
[返回顶部](#top)

pycharm小技巧:如果需要用一个标签把一段代码包围,可以依次点击code -> surround with
然后选emmet,在弹出来的框中输入标签名后回车

form表单提交数据的几个注意事项:
1.所有获取用户输入的标签都必须放在form表单里
2.action控制着往哪里提交
3.提交的数据为键值对,到后端才能区分,因此所有标签都有name属性表示键
4.必须有提交按钮
5.form默认为:method="get" enctype="application/x-www-form-urlencoded"。如果有上传文件,form的method="POST" enctype="multipart/form-data"

[返回顶部](#top)
##django后端示例

新建一个尚未项目:django-demo
```
django-admin startproject django-demo
```
在urls.py中添加代码后,运行项目:python manage.py runserver

```
from django.conf.urls import url
from django.contrib import admin

from django.shortcuts import HttpResponse
def upload_data(request):
    print("request data:", request.POST)
    if request.FILES:
        filename = request.FILES["img"].name
        with open(filename,‘wb‘) as f:
            for chunk in request.FILES["img"].chunks():
                f.write(chunk)
            return HttpResponse("image uploaded!")

    return HttpResponse("data subbmited")

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^‘, upload_data),
]
```
[返回顶部](#top)
为方便演示,注释掉 settings.py 中的 django.middleware.csrf.CsrfViewMiddleware
以避免csrf错误出现

```

MIDDLEWARE = [
    ‘django.middleware.security.SecurityMiddleware‘,
    ‘django.contrib.sessions.middleware.SessionMiddleware‘,
    ‘django.middleware.common.CommonMiddleware‘,
    #‘django.middleware.csrf.CsrfViewMiddleware‘,
    ‘django.contrib.auth.middleware.AuthenticationMiddleware‘,
    ‘django.contrib.messages.middleware.MessageMiddleware‘,
    ‘django.middleware.clickjacking.XFrameOptionsMiddleware‘,
]
```
[返回顶部](#top)

点击网页的提交后,后端控制器中打印提交内容:
```
{‘username‘: [‘telecomadmin‘],
‘password‘: [‘fasfafd‘],
‘gender‘: [‘1‘],
‘hobby‘: [‘basketball‘, ‘football‘],
‘birthday‘: [‘2018-10-20‘],
‘province‘: [‘beijing‘],
‘city‘: [‘cp‘],
‘descrition‘: [‘这里可以写默认初始值‘]}>
```
同时项目目录中出现上传的文件

[返回顶部](#top)

  

以上是关于s9_part2_fe_d48_form.md的主要内容,如果未能解决你的问题,请参考以下文章

SICP_2.48-2.49

混淆 C 代码竞赛 2006。请解释一下 sykes2.c

eg_8

这个 Python 代码是啥意思?

如何解决此错误:无法将类型“__NSCFString”(0x10354a248)的值转换为“UIImage”(0x104c42b48)

Python48--魔法方法:迭代器&生成器