form表单提交数据注意事项

1、注意form标签的书写,form标签必须有method属性和action属性

2、所有获取用户输入的表单标签(如input等)需放在<form></form>标签中,且表单标签(input等)需要有name属性。

3、form表单中必须有submit按钮。

示例如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="normalize.css"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css"><style>body{margin-top: 200px;background-color: rgba(0,0,0,0.1);}</style>
</head>
<body>
<div class="container"><div class="row"><form class="form-horizontal col-md-4 col-md-offset-4" method="post" action="/login/"><div class="form-group"><label  class="col-sm-3 control-label" >用户名</label><div class="col-sm-9"><input type="text" class="form-control"  placeholder="用户名" name="username"></div></div><div class="form-group"><label for="inputPassword3" class="col-sm-3 control-label">密码</label><div class="col-sm-9"><input type="password" class="form-control" id="inputPassword3" placeholder="密码" name="pwd"></div></div><div class="form-group"><div class="col-sm-offset-3 col-sm-9"><div class="checkbox"><label><input type="checkbox"> 记住我</label></div></div></div><div class="form-group"><div class="col-sm-offset-3 col-sm-9"><button type="submit" class="btn btn-default">登录</button></div></div></form></div>
</div>
<script src="../static/jquery-3.3.1.min.js"></script>
<script src="../static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
</body>
</html>

login.html

def login(request):if request.method == "POST":  #必须是大写print(request.POST)# <QueryDict: {'username': ['chris'], 'pwd': ['123']}>username=request.POST.get("username")pwd=request.POST.get("pwd")if username == "chris" and pwd == "123":return redirect("https://www.baidu.com/")return render(request,"login.html")# request.method 获取到客户端请求方法(GET/POST...)
# request.POST 获取到提交form表单提交的所有数据,如下
# <QueryDict: {'username': ['chris'], 'pwd': ['123']}>
# redirect 跳转到指定页面

Django之APP

一个Django项目中可以创建多个app(子项目),用来隔离不同功能的模块代码,多个app之间消息共通。

创建APP

方法1

#创建命令
python3 manage.py startapp app01
#app01为创建的app名称,可以取具有明确意义的名称

方法2

在创建新的Django项时创建一个app

方法3

在pycharm中的manage.py面板中依次输入命令,

startapp  app01 

修改Django中app文件夹配置

#在Django项目的settings文件中添加新增的app
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config',# 'app01',
]
#以上2种app01的添加方法皆可

ORM简介

对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

代码操作数据库的方式

1、直接执行sql语句,执行效率高,开发效率低。

2、按照特定的语法写,翻译成sql语句再执行,开发效率高,执行效率低。

Django之ORM

1、创建数据库

Django不能对数据库进行操作,要事先用sql语句创建数据库

create database 数据库名;

2、Django项目连接数据库

(1)配置数据库连接信息

# 在Django项目的settings文件中,;配置数据库链接信息
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',  # 指定连接的数据库(MySQL)'NAME': '数据库名称',  # 数据库(database)要自己创建,orm不能操作库'HOST': '127.0.0.1',  # 数据库IP'PORT': 3306,  # 数据库端口'USER': 'root',  # 数据库用户名'PASSWORD': 'xx',  # 数据库密码
    }
}

(2)使用pymysql模块连接MySQL数据库

# 在Django项目的和settings.py文件同目录下的__init__.py文件中,添加如下代码
import pymysql
pymysql.install_as_MySQLdb()#Django默认使用的是MySQLdb模块连接数据库,但pycharm与该模块不兼容,则指定使用pymysql模块代替MySQLdb

3、在app文件夹下的model.py中创建类

# 首先导入models模块
from django.db import models# 创建的类对应数据库中的表,该类必须继承models.Model
示例:创建一个user表
class User(models.Model):id = models.AutoField(primary_key=True)  # 自增主键name = models.CharField(max_length=16)  # varchar(16)pwd = models.CharField(max_length=128)

4、执行创建表的操作

方法1

# 命令行输入如下命令
1. python3 manage.py makemigrations
# 登记models.py的修改2. python3 manage.py migrate
#将修改翻译成SQL语句,去数据库执行,完成数据库相关操作

方法2:在manage.py面板中依次输入makemigrations ,migrate

转载于:https://www.cnblogs.com/mingkong-z/p/9174905.html

Django之初步实现登录功能,APP及ORM相关推荐

  1. Django框架项目——BBS项目介绍、表设计、表创建同步、注册、登录功能、登录功能、首页搭建、admin、头像、图片防盗、个人站点、侧边栏筛选、文章的详情页、点赞点踩、评论、后台管理、添加文章、头像

    文章目录 1 BBS项目介绍.表设计 项目开发流程 表设计 2 表创建同步.注册.登录功能 数据库表创建及同步 注册功能 登陆功能 3 登录功能.首页搭建.admin.头像.图片防盗.个人站点.侧边栏 ...

  2. Python+django网页设计入门(5):自定义用户注册与登录功能

    今天恰逢1024,是我们码农自己的节日,祝"Python小屋"所有朋友节日快乐!发几个去年整理的段子开心一下: 祝所有程序员1024节日快乐 =================== ...

  3. APP登录功能的Java服务端开发

    token 在手机端 没有 Session 这样的概念 一般都是通过token , 来传递验证信息 APP的登录功能的实现方式 对于 账号,密码 两种方式, 一 : 存在手机端 , 二 : 通过 服务 ...

  4. [django项目] 实现用户登录登出功能

    用户登录登出功能 I. 功能需求分析 1>功能分析 1.1>流程图 1.2>功能接口 登录页面 登录功能 退出功能 II. 登陆页面 1>接口设计 1.1>接口说明 类目 ...

  5. 记录--uniapp上如何实现安卓app微信登录功能(操作流程总结)

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 uniapp上如何实现安卓app微信登录功能?下面本篇文章给大家分享一下uniapp上实现安卓app微信登录的权限申请.开发的具体操作流程 ...

  6. python实现网页注册登录_Python+django网页设计入门(5):自定义用户注册与登录功能...

    原标题:Python+django网页设计入门(5):自定义用户注册与登录功能 今天恰逢1024,是我们码农自己的节日,祝"Python小屋"所有朋友节日快乐!发几个去年整理的段子 ...

  7. django登录连接html,Django——登录功能(连接mysql)

    一.路由url(r'^login', views2.login), url(r'^index', views2.index), url(r'^test', views.test), 二.视图函数 导入 ...

  8. python调用qq互联_Django项目中实现使用qq第三方登录功能

    使用qq登录的前提是已经在qq互联官网创建网站应用并获取到QQ互联中网站应用的APP ID和APP KEY 1,建路由 # qq登录 path('loginQq/',qq.loginQq,name=' ...

  9. Django 可重用注册登录系统

    文章目录 一.可重用注册登录系统 1.项目开始前的思考 2.搭建项目环境 3.设计数据库模型 1)数据库模型文件 2)设置数据库后端 3)注册app 4)生成迁移脚本并写入数据库 5)测试是否成功 6 ...

最新文章

  1. 创新工场提出中文分词和词性标注模型,性能分别刷新五大数据集| ACL 2020​
  2. Jenkins定时构建任务
  3. mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No suc
  4. linux拷贝文件到多个目录,怎么在 Linux 中复制文件到多个目录中
  5. 为什么用python缩进来划分代码_Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?...
  6. P6378 [PA2010] Riddle(2-sat/前后缀优化建图)
  7. mysql与tomcat_mysql数据库与tomcat服务器的一些细节问题
  8. ModelSim使用$display查看变量值和输出信息
  9. Access新手到高手视频教程 109讲
  10. asp.net WEB 调用 CuteFTP8.0 ftpte.exe 实现大文件上传
  11. LSTM预测多支股票的收盘价
  12. 如何在迪士尼+上启用和自定义字幕
  13. 【Kali】Kali linux 2021版本GVM无法启动解决方法
  14. 孙路弘说话就是生产力笔记
  15. css3 云朵飘动效果动画
  16. QQ邮箱服务器协议,QQ邮箱新功能 IMAP协议支持
  17. mysQL uuID 查询
  18. 三井住友加入R3 Marco Polo区块链网络
  19. 毕业设计--------登录鉴权
  20. NLU与NLG的区别(自然语言理解与自然语言生成的异同点)

热门文章

  1. Tom Mitchell、杨强、周志华共话算法未来,世界人工智能大会算法峰会报名中
  2. 大神程序员,夜夜coding到天明?Python之父昼伏夜出,PHP创始人24小时都在线
  3. day10-闭包函数、函数装饰器
  4. tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空...
  5. 多行显示的UIButton
  6. 不借助第三方工具查看映像路径(系统进程路径).
  7. 视频可以转换html,10 个免费的 HTML 视频转换工具
  8. Tungsten Fabric SDN — 社区贡献
  9. Docker 容器技术 — Overview
  10. Linux 操作系统原理 — 日志结构的文件系统与日志文件系统