Django Web框架

目录

1.环境安装

[1.1 安装Python环境](#1.1 安装Python环境)

[1.2 Django环境安装](#1.2 Django环境安装)

[1.3 PyCharm IDE安装](#1.3 PyCharm IDE安装)

2.初识Django项目

2.1创建django项目目录

[2.2 运行初始化项目](#2.2 运行初始化项目)

3.初识Django应用

[3.1 Django项目和Django应用的区别与联系](#3.1 Django项目和Django应用的区别与联系)

[3.2 创建Django应用](#3.2 创建Django应用)

[4.Django HelloWorld](#4.Django HelloWorld)

[4.1 Django视图](#4.1 Django视图)

5.模型层简介

6.创建博客文章模型

文章模型定义:

创建迁移文件:

运行迁移文件,把文件内容同步到数据库里面:

[7.初识Django Shell](#7.初识Django Shell)

[8.初识Django Admin模块](#8.初识Django Admin模块)

9.实现博客数据返回页面

10.使用Bootstrap实现静态博客页面

[11. 初识Django的模板系统](#11. 初识Django的模板系统)


1.环境安装

1.1 安装Python环境

官网安装即可,验证方式如下:

1.2 Django环境安装

官网安装即可,验证方式如下:

1.3 PyCharm IDE安装

官网安装即可

2.初识Django项目

2.1创建django项目目录

在所创建目录下打开PyCharm:

Django初始化必备文件:

2.2 运行初始化项目

3.初识Django应用

3.1 Django项目和Django应用的区别与联系
  • 一个Django项目就是一个基于Django的Web应用
  • 一个Django应用就是一个可重用的Python软件包
  • 一个Django项目包含一组配置和若干个Django应用
3.2 创建Django应用

4.Django HelloWorld

4.1 Django视图

5.模型层简介

模型层位于Django视图层和数据库之间,进行Python对象和数据库表之间的转换。

模型层可以屏蔽不同数据库之间的差异,可以提供很多便捷工具有助于开发。

6.创建博客文章模型

文章模型定义:
创建迁移文件:
运行迁移文件,把文件内容同步到数据库里面:

7.初识Django Shell

临时性操作使用Django Shell更加方便,小范围Debug更简单,不需要运行整个项目来测试。

使用Django Shell创建一篇文章:

进入Django Shell环境:

8.初识Django Admin模块

Django Admin模块是Django的后台管理工具,可以读取定义的模型元数据,提供强大的管理使用页面。

Django Shell新增文章太复杂。

Django Admin模块的使用:

创建管理员用户:

运行:

登陆页面进行管理:

创建成功:

把admin注册到模型里面:

完成article模型的注册,回到浏览器,刷新:

即刚才所建的article.

多个文章无法显示文章标题,需要定义以下函数:

打开浏览器进行刷新,标题显示:

9.实现博客数据返回页面

路由配置:

运行:

打开浏览器,内容显示:

10.使用Bootstrap实现静态博客页面

Bootstrap来自美国Twitter的前端框架,提供非常多的控件并附带源码,栅格系统把页面均分为12等份。

代码:

html 复制代码
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>入门Django</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script></head>
<body>
<div class="container page-header">
    <h1>入门Django
        <small>------by present</small>
    </h1>

</div>
<div class="container page-body">
    <div class="col-md-9" role="main">
        <div class="body-main">
            <div>
                <h2>故事1</h2>
                <p>
                这节车厢几乎空了,让那个小男孩可以一个人坐一排座位,她妈妈坐在过道对面的座位上,跟小男孩的小妹妹在一起,这个婴儿一只手拿一块烤面包片,另一只手拿着一个拨浪鼓。她被一条带子安全地绑在座位上,她可以坐直身子,往周围看,她慢慢往旁边歪倒时,那条带子会拦住她,让她半倒不倒,直到她妈妈转身把她扶直。小男孩往窗外看,在吃一块饼干,那位妈妈在安静地读书,头也不抬地回答小男孩的问题。

"我们在一条河上。"小男孩说,"这是一条河,我们在上面。"

"好啊。"他妈妈说。

"我们在河上的一道桥上。"那个小男孩自言自语道。
                </p>
            </div>
            <div>
                <h2>故事2</h2>
                <p>
                这节车厢几乎空了,让那个小男孩可以一个人坐一排座位,她妈妈坐在过道对面的座位上,跟小男孩的小妹妹在一起,这个婴儿一只手拿一块烤面包片,另一只手拿着一个拨浪鼓。她被一条带子安全地绑在座位上,她可以坐直身子,往周围看,她慢慢往旁边歪倒时,那条带子会拦住她,让她半倒不倒,直到她妈妈转身把她扶直。小男孩往窗外看,在吃一块饼干,那位妈妈在安静地读书,头也不抬地回答小男孩的问题。

"我们在一条河上。"小男孩说,"这是一条河,我们在上面。"

"好啊。"他妈妈说。

"我们在河上的一道桥上。"那个小男孩自言自语道。
                </p>
            </div>
        </div>
    </div>
    <div class="col-md-3" role="complementary">
        <div>
            <h2>最新文章</h2>
            <h4><a href="#">最新文章1</a></h4>
            <h4><a href="#">最新文章2</a></h4>
            <h4><a href="#">最新文章3</a></h4>
            <h4><a href="#">最新文章4</a></h4>
            <h4><a href="#">最新文章5</a></h4>
            <h4><a href="#">最新文章6</a></h4>
            <h4><a href="#">最新文章7</a></h4>
            <h4><a href="#">最新文章8</a></h4>
            <h4><a href="#">最新文章9</a></h4>
        </div>
    </div>
</div>
</body>
</html>

右击open in打开:

正文:

标题:

右侧部分:

文章详情页面:

代码:

html 复制代码
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>入门Django</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script></head>
<body>
<div class="container page-header">
    <h1>文章标题1
    </h1>
</div>
<div class="container body-main">
            <div>
                <p>
                这节车厢几乎空了,让那个小男孩可以一个人坐一排座位,她妈妈坐在过道对面的座位上,跟小男孩的小妹妹在一起,这个婴儿一只手拿一块烤面包片,另一只手拿着一个拨浪鼓。她被一条带子安全地绑在座位上,她可以坐直身子,往周围看,她慢慢往旁边歪倒时,那条带子会拦住她,让她半倒不倒,直到她妈妈转身把她扶直。小男孩往窗外看,在吃一块饼干,那位妈妈在安静地读书,头也不抬地回答小男孩的问题。

"我们在一条河上。"小男孩说,"这是一条河,我们在上面。"

"好啊。"他妈妈说。

"我们在河上的一道桥上。"那个小男孩自言自语道。
                </p>
            </div>
</div>
</body>
</html>

运行结果:

11. 初识Django的模板系统

基本语法:

变量标签:{{变量}}

html 复制代码
<html><body>{{now}}</body></html>

for循环标签:{% for x in list %},{% endfor %}

html 复制代码
<ul>
    {% for item in list %}
    <li>{{item}}</li>
    {% endfor %}
</ul>

if-else分支标签: {% if %},{% else %},{% endif %}

html 复制代码
{% if true %}
  <p>it is a true part.</p>
{% else %}
  <p>it is a false part.</p>
{% endif %}

参考视频:

【三小时带你入门Django框架】https://www.bilibili.com/video/BV1Sf4y1v77f?p=21\&vd_source=8325aa166174e825a2796814b956e39c

相关推荐
Kai HVZ3 分钟前
python爬虫----爬取视频实战
爬虫·python·音视频
古希腊掌管学习的神6 分钟前
[LeetCode-Python版]相向双指针——611. 有效三角形的个数
开发语言·python·leetcode
m0_748244839 分钟前
StarRocks 排查单副本表
大数据·数据库·python
B站计算机毕业设计超人15 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
路人甲ing..18 分钟前
jupyter切换内核方法配置问题总结
chrome·python·jupyter
游客52029 分钟前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
每天都要学信号1 小时前
Python(第一天)
开发语言·python
搬码后生仔1 小时前
asp.net core webapi项目中 在生产环境中 进不去swagger
chrome·后端·asp.net
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
咸鱼桨1 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派