學習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)
同步一下數據庫(方法同上)
效果圖
主頁:
注冊頁:
登錄頁面:
后臺: