- Django案例:显示图书信息
- 一)创建Django项目 - books
- (二)创建并注册应用 - index
- 1、创建index应用
- 2、注册index应用
- (三)创建数据库 - books
- (四)配置
- 数据迁移
- 创建模型
- 1、创建图书模型
- 2、创建用户模型
- 数据迁移
- 图书表与用户表添加记录
- 1、给图书表添加记录
- 2、给用户表添加记录
- 创建模板
- 1、创建登录页面 - login.html
- 设置路由
- 1、创建子路由
- 2、设置主路由
- 创建视图函数
- 1、跳转到登录页面
- 2、创建显示图书的视图
- 3、创建处理登录请求的视图
- 4、解决子路由中视图函数的导入问题
- 测试效果
。
一)创建Django项目 - books
导入os模块
执行python manage.py startapp index
运行books文件
访问http://127.0.0.1:8000
配置数据库
init.py文件里设置
import pymysql
pymysql.install_as_MySQLdb
输入python manage.py makemigrations
如此问题
解决办法
输入python manage.py migrate
数据迁移成功
在models中输入代码
from django.db import models
class Book(models.Model):
id = models.AutoField(primary_key=True)
number = models.CharField(‘总编号’,max_length=10)
category = models.CharField(‘分类号’,max_length=10)
name = models.CharField(‘书名’, max_length=50)
author = models.CharField(‘作者’, max_length=10)
press = models.CharField(‘出版单位’, max_length=50)
price = models.DecimalField(‘单价’, decimal_places=2,max_digits=6)
def str(self):
return str(self.name)
在后面继续添加User
输入python manage.py makemigrations
输入python manage.py migrate index 0001_initial
迁移成功
INSERT INTO index_book VALUES (1, ‘445501’, ‘TP3/12’, ‘数据库导论’, ‘王文丹’, ‘科学出版社’, 17.90);
INSERT INTO index_book VALUES (2, ‘445502’, ‘TP3/12’, ‘数据库导论’, ‘王文丹’, ‘科学出版社’, 17.90);
INSERT INTO index_book VALUES (3, ‘445503’, ‘TP3/12’, ‘数据库导论’, ‘王文丹’, ‘科学出版社’, 17.90);
INSERT INTO index_book VALUES (4, ‘445505’, ‘TW2/12’, ‘电工基础’, ‘楚留香’, ‘机械工业出版社’, 32.00);
INSERT INTO index_book VALUES (5, ‘332211’, ‘TP5/10’, ‘计算机基础’, ‘李伟’, ‘高等教育出版社’, 18.00);
INSERT INTO index_book VALUES (6, ‘112266’, ‘TP3/12’, ‘安卓开发实践’, ‘张慧明’, ‘电子工业出版社’, 55.00);
INSERT INTO index_book VALUES (7, ‘225544’, ‘TP7/21’, ‘高等数学’, ‘李小刚’, ‘高等教育出版社’, 25.00);
INSERT INTO index_book VALUES (8, ‘225533’, ‘TP7/12’, ‘线性代数入门’, ‘秦厚荣’, ‘北京大学出版社’, 25.00);
INSERT INTO index_book VALUES (9, ‘113388’, ‘TR7/90’, ‘大学英语’, ‘杨琼’, ‘北京外国语大学出版社’, 30.00);
INSERT INTO index_book VALUES (10, ‘446601’, ‘TR4/13’, ‘Java程序设计’, ‘张凯文’, ‘工信集团出版社’, 40.00);
INSERT INTO index_book VALUES (11, ‘446602’, ‘TR4/13’, ‘Java程序设计’, ‘张凯文’, ‘工信集团出版社’, 40.00);
INSERT INTO index_book VALUES (12, ‘446603’, ‘TR4/13’, ‘Java程序设计’, ‘张凯文’, ‘工信集团出版社’, 40.00);
INSERT INTO index_book VALUES (13, ‘449901’, ‘TR4/15’, ‘Spring Boot实践’, ‘秦文举’, ‘清华大学出版社’, 50.00);
INSERT INTO index_book VALUES (14, ‘449902’, ‘TR4/15’, ‘Spring Boot实践’, ‘秦文举’, ‘清华大学出版社’, 50.00);
INSERT INTO index_book VALUES (15, ‘118801’, ‘TR4/25’, ‘计算机网络’, ‘唐玉玲’, ‘高等教育出版社’, 32.00);
INSERT INTO index_book VALUES (16, ‘118802’, ‘TR4/25’, ‘计算机网络’, ‘唐玉玲’, ‘高等教育出版社’, 32.00);
添加成功
INSERT INTO index_user VALUES (1, ‘admin’, ‘123456’, ‘2021-05-05 11:14:29’);
INSERT INTO index_user VALUES (2, ‘李晓红’, ‘111111’, ‘2021-05-21 11:14:58’);
INSERT INTO index_user VALUES (3, ‘唐玉刚’, ‘222222’, ‘2021-05-10 11:15:42’);
添加成功
| 账号 | |
| 密码 | > |
| 序号 | 总编号 | 分类号 | 书名 | 作者 | 出版单位 | 单价 |
|---|---|---|---|---|---|---|
在index目录里创建子路由urls.py
输入
from django.urls import path
urlpatterns =[
path(‘login’,loginView,name=‘login’),
path(‘do_login’,doLoginView,name=‘do_login’),
path(‘books’,booksView,name=‘books’),
]
添加一个路由:path(‘’, include((‘index.urls’, ‘index’), namespace=‘index’))
在index的views.py里输入:
from django.shortcuts import render
def loginView(request):
return render(request,‘login.html’)
def doLoginView(request):
if request.method == ‘POST’:
username = request.POST.get(‘username’)
password = request.POST.get(‘password’)
users = User.objects.raw(‘select * from index_user where username =%s and password = %s’,params=[username,password])
if len(users) > 0:
return redirect(‘…/books’)
else:
login_msg = [‘用户名或者密码错误’]
return render(request,‘login.html’,{‘data’:json.dumps(login_msg)})
运行
进入http://127.0.0.1:8000/login
输入错误的用户名或密码
弹出对话框
单机确定按钮回到登录界面
输入正确账号和密码
进入页面



