发布于2019-08-22 15:46 阅读(3310) 评论(0) 点赞(30) 收藏(0)
学习Django中:试着着写一个用户注册登录系统,开始搞事情 =====O(∩_∩)O哈哈~=====
=================
Ubuntu
python 2.7.12
Django 1.10.4
IDE:Pycharm
Bootstrap(其实没怎么用~~)
=================
使用终端:
(创建项目)django-admin.py startproject mysite
(进入mysite新建app)django-admin.py startapp app01
记得在settings.py里面添加app
/mysite/app01/models.py:
1 from __future__ import unicode_literals 2 3 from django.db import models 4 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
/mysite/app01/views.py:
1 #coding=utf-8 2 from django.shortcuts import render,render_to_response 3 from django.http import HttpResponse 4 from django import forms 5 from models import User 6 # 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>
/mysite/urls.py
from django.conf.urls import url,include from django.contrib import admin from app01 import urls import app01 urlpatterns = [ 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), ]
在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)
同步一下数据库(方法同上)
主页:
注册页:
登录页面:
后台:
作者:hghgh
链接:https://www.pythonheidong.com/blog/article/52565/4e4d311fbdadb6c83b85/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!