学习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)
同步一下数据库(方法同上)
效果图
主页:
注册页:
登录页面:
后台: