首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django项目开发(二)

Django项目开发(二)

作者头像
润森
发布2019-08-29 11:25:40
5150
发布2019-08-29 11:25:40
举报
文章被收录于专栏:毛利学Python毛利学Python

上次搭建的django环境,这次来真正的实战开发,项目是比较老的图书管理系统,对于django来说只是一个Hello,world的项目,django的世界比你想象的还要大。

需求分析

任何的项目都要从需求分析入手

  • 对于用户来说,要发布图书
  • 对于用户来说,也可以删除图书
  • 对于用户来说,要有首页面

需求比较简单,关键是如何实现简单的需求

数据库建立是关键

数据库:高效的存储和处理数据的介质(介质主要是两种:磁盘和内存)。

对于企业,数据就是金钱。如果前期不做好数据库,后期来不断地添加需求,修改数据库,简直就是要命。千万不要删库跑路,删库已经进入了法律

这次上次的路径文件

上次创建好了app,搭建好了数据库

创建数据库

因为项目比较简单,只需要书的作者和名字就可以了

from django.db import models导入django内置的数据库,创建数据库的名字叫app_book_manager,就是front_book_manager

app下的model.py

然后就是数据库的迁移python manage.py makemigrationspython manage.py migrate两个语句

同时会生成相对的py迁移文件

具体内容就是用python执行SQL语句来创建数据库

0001_initial.py

通过Navicat可以看到刚创建的数据库

后端View视图

最开始的View.py

编写urls

urls.py

前端页面编写

对于编写前端,必须知道模板变量和模板标签

  • 模板变量 {{ }}
  • 模板标签 {% %}

以及最重要的继承base模板 {% extends 'base.html' %}

任何前端代码编写第一就是先写base.html,然后其他html继承

base.html 的源码

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图书管理系统</title>
    <link rel="stylesheet" href="{% static 'front/base.css' %}">
</head>
<body>
<nav>
    <ul class="nav">
        <li><a href="/">首页</a></li>
        <li><a href="{% url 'add_book' %}">发布图书</a></li>
    </ul>
</nav>
{% block content %}{% endblock %}
</body>
</html>
代码解析
  • {% load static %} 就是模板标签 来引用static文件夹的静态资源的

在setting.py中会有STATIC_URL = '/static/' ,这个是项目自动生成的,所以你只需要新建一个文件夹叫static,放一些CSS,js,image资源

  • {% static 'front/base.css' %} 就是加载css样式
  • {% url 'add_book' %} 就是跳转的url链接
  • {% block content %}{% endblock %} 其他html可以在这里放它自己的内容

CSS

# 清除内外变局
*{
    margin: 0;
    padding: 0;
}
# nav 大盒子设置背景黑色 overflow:hidden的意思就是超出部分隐藏,这样可以自由伸缩
.nav{
    background: #3a3a3a;
    height: 65px;
    overflow: hidden;
}
# 左浮动
.nav li{
    float: left;
    list-style: none;
    margin: 0 20px;
    line-height: 65px;
}
# a 没有下划线
.nav li a{
    color: #fff;
    text-decoration: none;
}
# 点击变手指
.nav li a:hover{
    color: lightblue;
}

上面的都是前期的准备,目的就是index.html的页面编写

{% extends 'base.html' %}
{% block content %}
    <table>
        <thead>
            <tr>
                <th>序号</th>
                <th>书名</th>
                <th>作者</th>
            </tr>
        </thead>
        <tbody>
            {% for book in books %}
                <tr>
                    <td>{{ forloop.counter }}</td>
                    <td><a href="{% url 'book_detail' book_id=book.0 %}">{{ book.1 }}</a></td>
                    <td>{{ book.2 }}</td>
                </tr>
            {% endfor %}
        </tbody>
    </table>
{% endblock %}
代码讲解
  • {% extends 'base.html' %} 继承base.html
  • {% block content %}{% endblock %} 写自己的内容
  • {% for book in books %} books 是上面view传递的books参数
  • forloop.counter 循环次数
  • {% url 'book_detail' book_id=book.0 %} book_detail是url的名字,book_id 是传递url的参数,
  • {{ book.1 }} 书的名字
  • {{ book.2 }} 书的作者

上次都是模板变量的基础知识

最后,祝有所学习,有所成长

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求分析
  • 数据库建立是关键
  • 创建数据库
  • 后端View视图
  • 编写urls
  • 前端页面编写
    • 任何前端代码编写第一就是先写base.html,然后其他html继承
      • 代码解析
        • 代码讲解
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档