django-admin startproject ch09site
cd ch09site/
python manage.py startapp mysite
vi ch09site/settings.py
ALLOWED_HOSTS = ['*']
'mysite',
'captcha',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
cp -rf /home/jack/course/book/ch08www/static .
cp -rf /home/jack/course/book/ch08www/templates .
下面的内容参考:
https://blog.csdn.net/wowocpp/article/details/102687642
然后按照 下面的 第一节走一遍
https://blog.csdn.net/wowocpp/article/details/100931995
忽略 第二节
第三节
forms.py
class LoginForm(forms.Form):
username = forms.CharField(label='姓名', max_length=10)
password = forms.CharField(label='密码',widget=forms.PasswordInput())
增加个人资料
def userinfo(request):
# template = get_template('userinfo.html')
# html = template.render(locals())
html = 'userinfo'
return HttpResponse(html)
url:
url(r'^userinfo/$', views.userinfo),
userinfo.html
page269
views.login
from django.contrib.auth import authenticate
from django.contrib import auth
from django.contrib.auth.decorators import login_required
from django.contrib import messages
def login(request):
if request.method == 'POST':
login_form = forms.LoginForm(request.POST)
if login_form.is_valid():
login_name = request.POST['user_name'].strip()
login_password = request.POST['password']
user = authenticate(username=login_name,password=login_password)
if user is not None:
if user.is_active:
auth.login(request,user)
print 'success'
messages.add_message(request,messages.SUCCESSS,'成功登录了')
return redirect('/')
else:
messages.add_message(request,messages.WARNING,'账号尚未启用')
else:
messages.add_message(request, messages.WARNING, '登录失败')
else:
messages.add_message(request, messages.INFO, '请检查输入的字段内容')
else:
login_form = forms.LoginForm()
template = get_template('login.html')
request_context = RequestContext(request)
request_context.push(locals())
html = template.render(request_context)
response = HttpResponse(html)
return response
view.index
def index(request, pid= None, del_pass=None):
if request.user.is_authenticated():
username = request.user.username
messages.get_messages(request)
template = get_template('index.html')
request_context = RequestContext(request)
request_context.push(locals())
html = template.render(request_context)
return HttpResponse(html)
##### views.logout
def logout(request):
auth.logout(request)
messages.add_message(request, messages.INFO, "成功注销了")
response = redirect('/')
return response
models.py
from django.contrib.auth.models import User
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
height = models.PositiveIntegerField(default=160)
male = models.BooleanField(default=False)
website = models.URLField(null=True)
def __unicode__(self):
return self.user.username
admin.py
admin.site.register(models.Profile)
python manage.py makemigrations
python manage.py migrate
python manage.py runserver 192.168.99.218:8080
page280
http://192.168.99.218:8080/admin/
page280
接着往下走:
views
from django.contrib.auth.models import User
@login_required(login_url='/login/')
def userinfo(request):
if request.user.is_authenticated():
username = request.user.username
try:
user = User.objects.get(username=username)
userinfo = models.Profile.objects.get(user=user)
except:
pass
template = get_template('userinfo.html')
html = template.render(locals())
return HttpResponse(html)
userinfo.html
<!-- login.html (ch09www project) -->
{% extends "base.html" %}
{% block title %}分享日记{% endblock %}
{% block content %}
<div class='container'>
<div class='row'>
<div class='col-md-12'>
<div class='panel panel-default'>
<div class='panel-heading' align=center>
<h3>用户信息</h3>
</div>
</div>
</div>
</div>
<div class='row'>
<div class='col-md-12'>
<div class='panel panel-primary'>
<div class='panel-heading' align=center>
{{ userinfo.user.username | upper }}
</div>
<div class='panel panel-body'>
电子邮件:{{ userinfo.user.email }}<br/>
身高:{{ userinfo.height }} cm<br/>
性别:{{ userinfo.male | yesno:"男生,女生"}}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
page282: