django 快速实现注册(四)
?
?
?
一、創建項目與應用?
#創建項目
fnngj@fnngj-H24X:~/djpy$ django-admin.py startproject mysite3
fnngj@fnngj-H24X:~/djpy$ cd mysite3
#在項目下創建一個account應用
fnngj@fnngj-H24X:~/djpy/mysite3$ python manage.py startapp account
?
數據庫 model
model里的代碼
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()?
密碼是yy12345678
查看sqlite數據庫,已經建好表啦
?
二。創建視圖 邏輯層
# -*- coding: utf-8 -*- from __future__ import unicode_literalsfrom django.shortcuts import render,render_to_response from django.template import loader,Context from django.http import HttpResponse from django import forms from account.models import User# Create your views here.#定義表單模型 class UserForm(forms.Form):username=forms.CharField(label='用戶名:',max_length=100)password=forms.CharField(label='密碼:',widget=forms.PasswordInput())email=forms.EmailField(label='電子郵件:')def register(request):if request.methos=='POST':uf=UserForm(request.POST)if uf.is_vaild():#獲取表單信息username=uf.cleaned_data['username']password=uf.cleaned_data['password']email=uf.cleaned_data['email']#將表單數據寫入數據庫user=User()user.username=usernameuser.password=passworduser.email=emailuser.save()#返回注冊成功頁面return render_to_response('success.html',{'username':username})else:uf=UserForm()return render_to_response('register.html',{'uf':uf})?
這個邏輯中主要做了幾件事,首先提供給用戶一個注冊頁面(register.html),UserForm類定義了表單在注冊頁面上的顯示。接受用戶填寫的表單信息,然后將表單信息寫入到數據庫,最后返回給用戶一個注冊成功的頁面(success.html)
?
三、創建模板文件(前端頁面)
在邏輯層提到了兩個頁面,一個注冊頁,一個注冊成功頁面。所以我們要把這兩個頁面創建出來。
先在mysite3/account/目錄下創建templates目錄,接著在mysite3/account/templates/目錄下創建register.html 文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>用戶注冊</title> </head><style type="text/css">body{color:#efd;background:#453;padding:0 5em;margin:0}h1{padding:2em 1em;background:#675}h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}p{margin:1em 0}</style> <body> <h1>注冊頁面:</h1> <form method = 'post' enctype="multipart/form-data"> {{uf.as_p}} <input type="submit" value = "ok" /> </form> </body> </html><?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title> </head> <body><h1>恭喜{{username}},注冊成功!</h1> </form> </body> </html>
四。設置url
設置URL的配置也是django?web框架的一大特色。打開mysite3/mysite3/urls.py:
from django.conf.urls import url,include from django.contrib import adminadmin.autodiscover()urlpatterns = [url(r'^admin/', admin.site.urls),url(r'^account/', include('account.urls')), ]
在mysite3/account/目錄下創建urls.py文件:
from django.conf.urls import url from account import viewsurlpatterns=[url(r'^$',views.register,name='register'),url(r'^register/$',views.register,name='register'),]
這里人配置表示:訪問
http://127.0.0.1:8000/account/
http://127.0.0.1:8000/account/register/
都會指向一個注冊頁面。
?
最后的注意:
以免錯誤的再次出現,
打開mysite3/mysite3/settings.py文件,將下面一行代碼注釋:
MIDDLEWARE_CLASSES = ('django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',#'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware', )?
?
?在數據庫查看我存入的數據
?
?
當然,用admin后臺的方式,看起來更舒服
配置admin后臺:
在我們創建項目的時候,admin就已經建立了,
1、配置urls.py
from django.conf.urls import url,include from django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls), #把admin配置文件加載進來?url(r'^blog/',include('blog.urls')), ]?
2.在model里
from __future__ import unicode_literalsfrom django.db import models from django.contrib import admin# 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','email')admin.site.register(User,UserAdmin)?
?
?
重新初始化數據庫:
好像沒有更新呀??
?
?
?
?
?
?ok啦~
?
轉載于:https://www.cnblogs.com/mogujiang/p/6763242.html
總結
以上是生活随笔為你收集整理的django 快速实现注册(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文章阅读(二)
- 下一篇: 第三十一讲:UML类图(上)