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

学习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:

from__future__ import unicode_literalsfromdjango.db import models

# Create your models here.classUser(models.Model):

username= models.CharField(max_length=50)

password= models.CharField(max_length=50)

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:

#coding=utf-8

fromdjango.shortcuts import render,render_to_responsefromdjango.http import HttpResponsefromdjango import formsfrommodels import User

# Create your views here.classUserForm(forms.Form):

username= forms.CharField(label='用户名',max_length=50)

password= forms.CharField(label='密码',widget=forms.PasswordInput())

email= forms.EmailField(label='邮箱')

def regist(request):if request.method == 'POST':

userform=UserForm(request.POST)ifuserform.is_valid():

username= userform.cleaned_data['username']

password= userform.cleaned_data['password']

email= userform.cleaned_data['email']

User.objects.create(username=username,password=password,email=email)

User.save()return HttpResponse('regist success!!!')else:

userform=UserForm()return render_to_response('regist.html',{'userform':userform})

def login(request):if request.method == 'POST':

userform=UserForm(request.POST)ifuserform.is_valid():

username= userform.cleaned_data['username']

password= userform.cleaned_data['password']

user= User.objects.filter(username__exact=username,password__exact=password)ifuser:return render_to_response('index.html',{'userform':userform})else:return HttpResponse('用户名或密码错误,请重新登录')else:

userform=UserForm()return render_to_response('login.html',{'userform':userform})

注释:

label:标签

widget:装饰

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

设计模板文件

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

regist.html

{% load static %}

Regist

注册页面

{{userform.as_p}}

login.html

{% load static %}

Login

登录页面

{{userform.as_p}}

index.html

主页

Hello Word!

设计urls

/mysite/urls.py

fromdjango.conf.urls import url,includefromdjango.contrib import adminfromapp01 import urls

import app01

urlpatterns=[

url(r'^admin/', admin.site.urls),

url(r'',include(app01.urls)),

]

/mysite/app01/urls.py

fromdjango.conf.urls import url,includefromdjango.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_literalsfromdjango.contrib import adminfromdjango.db import models

# Create your models here.classUser(models.Model):

username= models.CharField(max_length=50)

password= models.CharField(max_length=50)

email=models.EmailField()classUserAdmin(admin.ModelAdmin):

list_display= ('username','password','email')

admin.site.register(User,UserAdmin)

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

效果图

主页:

注册页:

登录页面:

后台:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubantu 添加防火墙策略_ubuntu安装防火墙并策略配置

1、安装ubuntu防火墙sudo apt-get install ufw启用sudo ufw enablesudo ufw default deny作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。关闭sudo ufw disable查看防火墙状态sudo ufw status2、开启/禁用相应端口或服务举例sudo u…

如何使用React Native构建嵌套的抽屉菜单

by Dhruvdutt Jadhav由Dhruvdutt Jadhav 如何使用React Native构建嵌套的抽屉菜单 (How to build a nested drawer menu with React Native) Screen space is a precious commodity on mobile. The drawer menu (or “hamburger menu”) is one of the most popular navigatio…

c# WebApi之接口返回类型详解

c# WebApi之接口返回类型详解 https://blog.csdn.net/lwpoor123/article/details/78644998 转载于:https://www.cnblogs.com/hwubin5/p/10665006.html

第十一次作业

1。题目&#xff1a; 输入一个字符串&#xff0c;统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组 代码 #include<stdio.h> #define n 100 int main() {char a[n];int i,a10,b0,c0,d0;printf("输入字符串&#xff1a;\n");gets(a);for(i…

Python Configparser模块读取、写入配置文件

写代码中需要用到读取配置&#xff0c;最近在写python&#xff0c;记录一下。 如下&#xff0c;假设有这样的配置。 [db] db_host127.0.0.1 db_port3306 db_userroot db_pass [concurrent] thread200 processor400 可以使用ConfigParser模块来读取、写入配置…

leetcode714. 买卖股票的最佳时机含手续费(动态规划)

给定一个整数数组 prices&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 &#xff1b;非负整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易&#xff0c;但是你每笔交易都需要付手续费。如果你已经购买了一个股票&#xff0c;在卖出它之前你就不能再继续购买…

宁宛 机器人_全文阅读 .007 忠犬机器人

全文阅读 .007 忠犬机器人”其实光看i5高大的身躯、泛着金属光泽的外壳&#xff0c;很难想象它能把照顾人的事情做的那么细致。这张同样自带程序的金属床在i5的操作下&#xff0c;根据宁宛自身的体重及骨密度&#xff0c;调整出最适合她的硬度、角度及凹陷程度。空间跳跃……早…

servlet中文乱码_10分钟快速掌握Servlet相关基础知识

Servlet的学习路线1、 创建Servlet2、 Servlet的相关配置3、 Servlet的生命周期4、 HttpServletRequest接口5、 HttpServletResponse接口6、 HttpSession接口7、 Filter、Listener接口Servlet的相关配置1、 创建Servlet extends HttpServlet2、 配置Serlvet第1种配置方式: web.…

盖茨比乔布斯_如何使用盖茨比创建您的博客并通过手机进行处理

盖茨比乔布斯by Hu Chen胡Hu 如何使用盖茨比创建您的博客并通过手机进行处理 (How to use Gatsby to create your blog and work on it from your phone) Recently, I decided to migrate my blog to Gatsby. Gatsby is a blazing fast static site generator based on React.…

python之collections之有序字典(OrderedDict)

一、定义OrderedDict是对字典的补充&#xff0c;它记住了字典元素的添加顺序。eg&#xff1a; 二、OrderedDict相关方法def clear(self): # real signature unknown; restored from __doc__ """     od.clear() -> None. Remove all items from od. …

进阶4:hive 安装

安装包&#xff1a; apache-hive-2.1.1-bin.tar.gz 安装步骤&#xff1a; 1.上传 apache-hive-2.1.1-bin.tar.gz 到linux; 2.解压文件&#xff1a; tar zxvf apache-hive-2.1.1-bin.tar.gz 3.安装mysql (仅支持mysql 5.7以下版本&#xff0c;不支持5.7或更高版本&#xff0c…

macbookpro接口叫什么_【科普】什么是雷电接口?苹果电脑MACBOOK PRO有吗?

刚接触笔记本的朋友不知道USB-C口是什么,也不知道雷电接口(Thunderbolt)是什么,只知道MACBOOK PRO有雷电3接口。简单来说 雷电接口是USB TYPE-C的替代模式,在此了解【什么是USB TYPE-C】 什么是雷电接口? 借用百度百科的表达 2011年2月24日,英特尔发布了长期以来广为宣传的…

GoldenGate 12.3微服务架构与传统架构的区别

随着Oracle GoldenGate 12c&#xff08;12.3.0.1.0&#xff09;的发布&#xff0c;引入了可用于复制业务数据的新架构。 多年来&#xff0c;这种架构有着不同的称谓&#xff0c;Oracle终于在最后GA发布的版本中&#xff0c;以“Microservices”的名义确认新架构的名称。Microse…

leetcode剑指 Offer 63. 股票的最大利润(动态规划)

假设把某股票的价格按照时间先后顺序存储在数组中&#xff0c;请问买卖该股票一次可能获得的最大利润是多少&#xff1f; 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天&#xff08;股票价格 1&#xff09;的时候买入&#xff0c;在第 5 天&#xff08;股票价格 6&…

usb serial port 驱动_tty初探 — uart驱动框架分析

写在前面&#xff1a;我们没有讲UART驱动&#xff0c;不过我们认为&#xff0c;只要系统学习了第2期&#xff0c;应该具备分析UART驱动的能力&#xff0c;小编做答疑几年以来&#xff0c;陆陆续续有不少人问到UART驱动怎么写&#xff0c;所以今天就分享一篇深度长文(17000字&am…

databricks_如何开始使用Databricks

databricksby Shubhi Asthana通过Shubhi Asthana 如何开始使用Databricks (How to get started with Databricks) When I started learning Spark with Pyspark, I came across the Databricks platform and explored it. This platform made it easy to setup an environment…

简述isodata算法的原理_算法常见面试题汇总(一):概率论与数理统计部分

初级或中级算法岗面试题主要有四类&#xff1a;数理统计基础、机器学习模型原理、编程能力、项目经验。项目经验因人而异&#xff0c;所以仅总结前三个方面的基础知识&#xff0c;分享给朋友。&#xff08;高级或资深算法岗面试内容不在本文范围内&#xff09;1.大数定律弱大数…

shell中各种括号的作用()、(())、[]、[[]]、{}

转自&#xff1a;http://blog.csdn.net/taiyang1987912/article/details/39551385 一、小括号&#xff0c;圆括号&#xff08;&#xff09; 1、单小括号 () ①命令组。括号中的命令将会新开一个子shell顺序执行&#xff0c;所以括号中的变量不能够被脚本余下的部分使用。括号中…

SQLite 数据类型

SQLite 数据类型 参考&#xff1a; SQLite 数据类型 | 菜鸟教程http://www.runoob.com/sqlite/sqlite-data-types.html SQLite 数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列&#xff0c;每个变量和表达式都有相关的数据类型。 您可以在创建表的同时使用…

leetcode1143. 最长公共子序列(动态规划)

给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08;也可以不删除任何字符&#xff09;后组成的新字符串。 …