11.登陆功能(链接MySQL)
python manage.py starapp movie
新建一个应用模块之后要记得到setting添加这个应用模块
在python2中你还有去导入一个MySQL_pathon 的第三包
第一步修改settings.py的文件
在文件上边会有一个链接会介绍,如何去链接数据库
端口,用户名,密码,名称,主机地址,链接器
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#数据库连接器
'NAME': 'logindemo',#数据库名称
'HOST':'127.0.0.1',#数据库主机地址
'PORT':'3306',#数据库端口
'USER':'root',#数据库用户名
'PASSWORD':'123456'#数据库密码
}
}
配置模型类(student/models.py)
自己理解应该就是创建数据表,在models中写数据的字段和类型
class Stu(models.Model):
sname = models.CharField(max_length=20,unique=True)
spwd = models.CharField(max_length=20,unique=True)
生成数据库表
#创建当前应用的迁移文件
python manage.py makemigrations student
#生成数据库表
python manage.py migrate
再配置url
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^student/', include('student.urls')),
]
import views
urlpatterns = [
url(r'^$',views.login_view),
url(r'^login/',views.to_login_view)
]
配置函数试图
#处理登录功能
def doLogin_view(request):
#接收请求参数
uname = request.POST.get('uname','')
pwd = request.POST.get('pwd','')
#判断是否登录成功
count = Stu.objects.filter(sname=uname,spwd=pwd).count()
if count==1:
return HttpResponse('登录成功!')
else:
return HttpResponse('登录失败!')
12.影片展示(数据库逆向生成)
1.数据库有东西了,创建模型类与数据库连接。那如何逆向连接呢
如下,通过命令执行的。指定到models.py文件中
创建模型类(逆向生成)
python manage.py inspectdb>movie/models.py
2.配置url(与上做法一样)
去执行views中的函数,去解析html,呈现画面
创建视图函数
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from models import *
import math
def page(num=1,size=20):
num = int(num)
if num < 1:
num = 1
# 计算总页数
total_records = Movie.objects.count()
total_pages = int(math.ceil(total_records * 1.0 / size))
if num > total_pages:
num = total_pages
movies = Movie.objects.all()[((num - 1) * size):(num*size)]
return movies,num
# Create your views here.
def index_view(request):
num = request.GET.get('num',1)
ms,n = page(num)
pre_page = n-1
next_page = n+1
return render(request,'movie.html',{'movies':ms,'pre_page':pre_page,'next_page':next_page})
创建HTML
{% for movie in movies %}
<li>
<a href = "{{movie.mlik}}><img src="{{movie.ming}}"/></a?
<h1 class = "h1"><movie.name}}</h1>
<span class = "tip">{{movie.mdesc }}</span>
</li>
{% endfor %}
<div id="pagebar">
<a href="/movie/?num={{ pre_page }}">上一页</a>
<a href="/movie/?num={{ next_page }}">下一页</a>
</div>