Django:显示图书信息

目录

(一)创建Django项目 - books

(二)创建并注册应用 - index

1、创建index应用

2、注册index应用

(三)创建数据库 - books

(四)配置MySQL数据库连接信息

(五)设置MySQL数据库连接模块

(六)实现数据迁移生成表

(七)创建模型

1、创建图书模型 - Book

2、创建用户模型 - User

(八)数据迁移,生成图书表与用户表

(九)给图书表与用户表添加记录

1、给图书表添加记录

2、给用户表添加记录

(十)创建模板页面

1、创建登录页面 - login.html

(十一)设置路由

1、创建子路由

2、设置主路由

(十二)创建视图函数

1、创建跳转到登录页面的视图函数 - loginView

3、创建处理登录请求的视图函数 - doLoginView

4、解决子路由中视图函数的导入问题

(十三)启动项目,测试效果


(一)创建Django项目 - books

  • 创建Django项目,设置项目位置与项目名

(二)创建并注册应用 - index

1、创建index应用

  • 在项目配置文件里,导入os模块

  • 在控制台执行 python manage.py startapp index

  • 启动项目,访问http://127.0.0.1:8000

2、注册index应用

  • 在配置文件的INSTALLED_APPS列表里添加index应用

(三)创建数据库 - books

  • 创建MySQL数据库 - books

(四)配置MySQL数据库连接信息

  • 在settings.py文件里配置MySQL数据库连接信息

(五)设置MySQL数据库连接模块

  • 在books的__init__.py文件里设置数据库连接模块

(六)实现数据迁移生成表

  • 依次执行下述两条命令
  • python manage.py makemigrations

  • python manage.py migrate

  • 最后再查看一下数据库生成表

(七)创建模型

1、创建图书模型 - Book

  • 在index的models.py文件里定义Book模型类

#创建图书模型
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)

2、创建用户模型 - User

#创建用户模型
class User(models.Model):
    id=models.AutoField(primary_key=True)
    username=models.CharField('用户名',max_length=20)
    password=models.CharField('密码',max_length=50)
    last_login_time = models.DateTimeField('上次登录时间')

    def __str__(self):
        return str(self.username)

(八)数据迁移,生成图书表与用户表

  • 依次执行下面两条命令
  • python manage.py migrate
  • python manage.py migrate index 0001_initial

  • 在数据库查看生成的两个表

(九)给图书表与用户表添加记录

1、给图书表添加记录

  • 执行SQL查询,插入表记录
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);

  • 刷新图书表查看数据

2、给用户表添加记录

  • 执行SQL查询,添加表记录

  • 刷新用户表查看数据

(十)创建模板页面

1、创建登录页面 - login.html

  • 在templates文件夹里创建login.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户登录</title>
</head>
<body>
<h3 style="text-align: center">用户登录</h3>
<form id="frmLogin" action="do_login" method="post">
    {% csrf_token %}
    <table class="tb" border="1" cellpadding="10" style=" margin: 0 auto">
        <tr>
            <td align="center">账号</td>
            <td><input id="username" type="text" name="username"/></td>
        </tr>
        <tr>
            <td align="center">密码</td>
            <td><input id="password" type="password" name="password"/></td>
        </tr>
        <tr align="center">
            <td colspan="2">
            <input type="submit" value="登录"/>
            <input type="reset" value="重置"/>
            </td>
        </tr>
    </table>
    <script language="JavaScript">
        login_msg = {{ data | safe }};
        if (login_msg != null) {
            alert(login_msg);
        }
    </script>
</form>
</body>
</html>

(十一)设置路由

1、创建子路由

  • 在index目录里创建子路由urls.py,在里面创建子路由集合urlpatterns

  • 三个视图函数都需要在index的views.py里创建,目前还没有创建,所以会报错,创建视图函数后,导入就可解决问题

2、设置主路由

  • 在主路由集合里添加一个路由:path('', include(('index.urls', 'index'), namespace='index'))

 

(十二)创建视图函数

1、创建跳转到登录页面的视图函数 - loginView

  • 在index的views.py里创建loginView的视图函数

3、创建处理登录请求的视图函数 - doLoginView

  • 在index的views.py里创建doLoginView的视图函数
import json

from django.shortcuts import render, redirect


#创建登录视图函数
from index.models import User, Book


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)})
def booksView(request):
    books = Book.objects.all()
    return render(request,'books.html',locals())
# Create your views here.

4、解决子路由中视图函数的导入问题

  • 导入index.views里的三个视图函数

(十三)启动项目,测试效果

  • 访问http://127.0.0.1:8000/login,显示登录页面

  • 输入错误的用户名或密码

  • 输入正确的用户名和密码

  • 登陆后表格显示全部图书信息

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Django是一个非常流行的Python Web框架,可以用于开发各种Web应用程序。我们可以使用Django编写爬虫程序来抓取豆瓣图书的相关信息显示在网站上,让用户可以直接在网站上查看和搜索相关图书信息。 首先,我们需要使用Python的requests模块进行HTTP请求,并使用BeautifulSoup或lxml等模块对HTML进行解析。通过这些模块,我们可以获取豆瓣网站上的图书信息,如书名、作者、封面、出版日期、价格等。 然后,我们可以将抓取到的信息存储到数据库中,以便Web应用程序查询和显示Django提供了ORM(对象关系映射)工具,可以将Python对象映射到数据库表中,使得数据库操作变得更加简单和方便。 最后,我们可以使用Django的视图模板来呈现这些数据,将其呈现给用户。视图模板可以将数据组织成网页设计要求的格式,并可以使用CSS和JavaScript等前端技术美化页面。此外,还可以添加搜索和过滤功能,使得用户可以根据自己的需求来查找和筛选相关图书信息。 总之,使用Django编写爬虫程序来抓取豆瓣图书信息,并将其显示在网站上,是一项非常有意义和实用的工作。通过此类工作,我们可以提高自己的编程技能,并为用户提供便利和帮助。 ### 回答2: Django是一个用于构建Web应用程序的Python框架,它提供了许多功能强大的工具和库,使开发Web应用程序变得轻松且高效。同时,我们可以使用Django来爬取网站的信息,并将这些信息呈现给用户。 豆瓣图书是一个非常受欢迎的书籍分享社区,它包含数百万本书籍、读者评论、书评等信息。我们可以使用Django来爬取豆瓣图书,并将这些信息显示到我们自己的Web应用程序中。 在使用Django爬取豆瓣图书时,我们需要使用Python的爬虫库来获取网页的HTML代码,并使用解析库将这些信息解析为Python对象。在这个过程中,我们可以使用BeautifulSoup库来解析HTML代码,并提取我们需要的信息。 要在Django应用程序中显示豆瓣图书信息,我们可以使用Django的视图(View)来定义我们要显示的内容,并使用模板(Template)来呈现这些信息。我们可以将从豆瓣图书中获取的信息存储在Django的模型(Model)中,并使用查询(Query)来获取这些信息。 最后,我们需要将Django应用程序部署到服务器上,以便用户可以通过Web浏览器访问到我们的网站。在这个过程中,我们可以使用Django的部署工具来帮助我们部署应用程序,并确保它能够在生产环境下运行稳定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值