学习Django中:写一个用户注册登录系统,开始搞事情 =====O(∩_∩)O~=====

=================

Ubuntu

python 2.7.12

Django 1.10.4

IDE:Pycharm

Bootstrap

=================

新建项目:(我是直接用pycharm直接生成的)

使用终端:

(创建项目) django-admin.py startproject mysite

(进入mysite新建app) django-admin.py startapp app01

记得在settings.py里面添加app

设计模型:

/mysite/app01/models.py:

 1 from __future__ import unicode_literals2 3 from django.db import models4 5 # Create your models here.6 7 class User(models.Model):8     username = models.CharField(max_length=50)9     password = models.CharField(max_length=50)
10     email = models.EmailField()

创建User类,存放 username、password、email三个字段

同步数据库:

Python manage.py makemigrations

python manage.py migrate

Django会自动创建一系列表

没有自动创建superuser.......咱们手动创建:

python manage.py createsuperuser

设计逻辑视图(views):(使用表单)

/mysite/app01/views.py:

 1 #coding=utf-82 from django.shortcuts import render,render_to_response3 from django.http import HttpResponse4 from django import forms5 from models import User6 # Create your views here.7 class UserForm(forms.Form):8     username = forms.CharField(label='用户名',max_length=50)9     password = forms.CharField(label='密码',widget=forms.PasswordInput())
10     email = forms.EmailField(label='邮箱')
11
12 def regist(request):
13     if request.method == 'POST':    
14         userform = UserForm(request.POST)
15         if userform.is_valid():
16             username = userform.cleaned_data['username']
17             password = userform.cleaned_data['password']
18             email = userform.cleaned_data['email']
19
20             User.objects.create(username=username,password=password,email=email)
21             User.save()
22
23             return HttpResponse('regist success!!!')
24     else:
25         userform = UserForm()
26     return render_to_response('regist.html',{'userform':userform})
27
28 def login(request):
29     if request.method == 'POST':
30         userform = UserForm(request.POST)
31         if userform.is_valid():
32             username = userform.cleaned_data['username']
33             password = userform.cleaned_data['password']
34
35             user = User.objects.filter(username__exact=username,password__exact=password)
36
37             if user:
38                 return render_to_response('index.html',{'userform':userform})
39             else:
40                 return HttpResponse('用户名或密码错误,请重新登录')
41
42     else:
43         userform = UserForm()
44     return render_to_response('login.html',{'userform':userform})

注释:

label:标签

widget:装饰

widget=forms.PasswordInput():设置密码字段

设计模板文件

在templates里面新建index.html、regist.html、login.html

regist.html

<!DOCTYPE html>
{% load static %}
<html lang="zh-CN"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><meta name="description" content=""><meta name="author" content=""><title>Regist</title><!-- Bootstrap core CSS --><link href="{% static 'css/bootstrap.css' %}" rel="stylesheet"><!-- IE10 viewport hack for Surface/desktop Windows 8 bug --><link href="{% static 'css/ie10-viewport-bug-workaround.css' %}" rel="stylesheet"><!-- Custom styles for this template --><link href="{% static 'css/signin.css' %}" rel="stylesheet"><!-- Just for debugging purposes. Don't actually copy these 2 lines! --><!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--><script src="{% static 'js/ie-emulation-modes-warning.js' %}"></script><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --><!--[if lt IE 9]><script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script><script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script><![endif]--></head>
<style>html,body{text-align:center;margin:0px auto;}
</style>
<body>
<h1>注册页面</h1>
<form method = 'post' enctype="multipart/form-data">
{{userform.as_p}}
<input type="submit" value = "Regist" />
</form>
</body>
</html>

login.html

<!DOCTYPE html>
{% load static %}
<html lang="zh-CN"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><meta name="description" content=""><meta name="author" content=""><title>Login</title><!-- Bootstrap core CSS --><link href="{% static 'css/bootstrap.css' %}" rel="stylesheet"><!-- IE10 viewport hack for Surface/desktop Windows 8 bug --><link href="{% static 'css/ie10-viewport-bug-workaround.css' %}" rel="stylesheet"><!-- Custom styles for this template --><link href="{% static 'css/signin.css' %}" rel="stylesheet"><!-- Just for debugging purposes. Don't actually copy these 2 lines! --><!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]--><script src="{% static 'js/ie-emulation-modes-warning.js' %}"></script><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --><!--[if lt IE 9]><script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script><script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script><![endif]--></head>
<style>html,body{text-align:center;margin:0px auto;}
</style>
<body>
<h1>登录页面</h1>
<form method = 'post' enctype="multipart/form-data">
{{userform.as_p}}
<input type="submit" value = "Login" />
</form>
</body>
</html>

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>主页</title>
</head>
<style>html,body{text-align:center;margin:0px auto;}
</style>
<body>
<h1>Hello Word!</h1>
</body>
</html>

设计urls

/mysite/urls.py

from django.conf.urls import url,include
from django.contrib import admin
from app01 import urls
import app01urlpatterns = [url(r'^admin/', admin.site.urls),url(r'',include(app01.urls)),
]

/mysite/app01/urls.py

from django.conf.urls import url,include
from django.contrib import admin
import views
admin.autodiscover()urlpatterns = [url(r'^index/$',views.index),url(r'^login/$',views.login),url(r'^regist/$',views.regist),]

使用admin后台管理注册的用户

在models.py里面设计一个UserAdmin类,用来记录注册用户的信息

/mysite/app01/models.py

from __future__ import unicode_literals
from django.contrib import admin
from django.db import models# Create your models here.class User(models.Model):username = models.CharField(max_length=50)password = models.CharField(max_length=50)email = models.EmailField()class UserAdmin(admin.ModelAdmin):list_display = ('username','password','email')admin.site.register(User,UserAdmin)

同步一下数据库(方法同上)

效果图

主页:

注册页:

登录页面:

后台:

Django实现用户注册登录相关推荐

  1. Django实现用户注册登录,表单提交后跳转网页(学习笔记)

    效果图如下: 1.新建项目和APP 使用命令提示符,进入想存放项目的目录: //新建项目coco django-admin startproject coco //新建app python manag ...

  2. python django用户登录系统_Django实现用户注册登录

    学习Django中:试着着写一个用户注册登录系统,开始搞事情 =====O(∩_∩)O哈哈~===== ================= Ubuntu python 2.7.12 Django 1. ...

  3. Django+bootstrap+注册登录系统

    转自:https://www.cnblogs.com/robindong/p/9610057.html Robin_D 博客园 首页 新随笔 联系 订阅 管理 随笔 - 10  文章 - 0  评论 ...

  4. java 银行管理系统怎么储存账户信息_银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能...

    ========= 项    目   介   绍======== 银行账户管理系统 本项目主要实现用户注册 登录 存.取钱和修改用户信息功能. 用户信息的存储和获取通过集合和IO输入输出流实现. 存钱 ...

  5. Django项目QQ登录后端接口实现

    Django项目QQ登录后端接口实现 QQ登录,亦即我们所说的第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目. 1.准备工作的步骤: QQ登录网站开发流程准备工作 ...

  6. php的微信登录示例代码,关于微信用户注册登录实例代码汇总

    这篇文章主要介绍了.NET微信开发之PC 端微信扫码注册和登录功能实现的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下一.前言先声明一下,本文所注重点为实现思路,代码及数据库设计主要为了展 ...

  7. java登陆注册 mysql_Java+mysql用户注册登录功能

    最近刚刚开始学习mysql,所以就写了这个很基本的用户注册登录的功能来练练手.虽然这个很简单,但是我还是看到了自己学习的进步,很开心.哈哈哈. 这里要注意数据表的建立: 直接上代码吧,里面注释很详细了 ...

  8. php制作简单的用户注册登录

    这里来写一个表详细的php用户注册登录,这里我用的集成是WampServer 数据库的创建要在PHPmyadmin 里面操作. 1.数据库,数据表的创建 这个是随意命名的 可以直接在WampServe ...

  9. php lumen auth,Lumen实现用户注册登录认证

    Lumen实现用户注册登录认证 前言 Lumen是一个基于Laravel的微框架,号称是以速度为生.截用Lumen官网的一段,号称是比silex和slim还要快. 本文将用Lumen来实现一个完整的用 ...

最新文章

  1. Visio 快捷大全(转载)
  2. 用python画动态皮卡丘_利用Python绘制萌萌哒的皮卡丘
  3. Centos7 vim/vi的使用
  4. LiveVideoStackCon 2018公布优秀出品人与讲师
  5. 数论六之计算几何干货——计算几何模板解释全集 及 模板检验训练场
  6. java 快速io_java 最快的input (ACM) Java高效IO
  7. VCL组件之TPanel
  8. 随想录(fpga处理图像的优缺点)
  9. Java21天打卡Day7-循环
  10. java工程师面试几百问_不是吧?面试被问了几百遍的JVM,你还搞不清楚?
  11. Predict user model based on genus
  12. Team building | 什么?团建还能这么玩?
  13. 【自动驾驶】二自由度车辆动力学模型
  14. 驾驭你的“职场布朗运动” (作者李云)
  15. 第019讲:函数:我的地盘听我的 | 课后测试题及答案(小甲鱼)
  16. MathorCup 高校数学建模挑战赛第一届——大数据竞赛论文格式及提交规范
  17. vue 所有dom加载完毕后操作dom节点
  18. 用标号法求最短路径matlab,标号法求最短路径问题
  19. MATLAB中关于patch的用法(涉及vertice,faces等的基础的介绍)
  20. Groovy on Grails(Java笨狗)系列---开篇(一)

热门文章

  1. 这真的是实体零售行业“最坏的时代”吗?——“新零售”视角下的分析
  2. brew开发--FM 收音机
  3. 跨境电子商务亚马逊跟卖,listing,黄金购物车都是什么
  4. 江苏省C语言二级备考(5/20)
  5. word编号后怎么让其不自动缩进
  6. 基于比较排序的时间复杂度的下界
  7. firewalld标准规则
  8. 齐岳介绍Porapak P 80/100高分子微球气相色谱,Porapak QS 50/80担体色谱填料,Porapak S,80/100目,75cc/气相色谱吸附剂
  9. pc上体验灭霸响指的快感
  10. QQ小程序平台接入遇到的坑