Django Web框架

目录

1.环境安装

1.1 安装Python环境

1.2 Django环境安装

1.3 PyCharm IDE安装

2.初识Django项目

2.1创建django项目目录

2.2 运行初始化项目

3.初识Django应用

3.1 Django项目和Django应用的区别与联系

3.2 创建Django应用

4.Django HelloWorld

4.1 Django视图

5.模型层简介

6.创建博客文章模型

文章模型定义:

创建迁移文件:

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

7.初识Django Shell

8.初识Django Admin模块

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

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

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等份。

代码:

<!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打开:

正文:

标题:

右侧部分:

文章详情页面:

代码:

<!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><body>{{now}}</body></html>

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

<ul>
    {% for item in list %}
    <li>{{item}}</li>
    {% endfor %}
</ul>

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

{% 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

相关推荐

  1. <span style='color:red;'>框架</span>

    框架

    2024-07-16 16:32:01      21 阅读
  2. Vue框架

    2024-07-16 16:32:01       55 阅读
  3. pytest框架

    2024-07-16 16:32:01       52 阅读
  4. fastapi框架

    2024-07-16 16:32:01       52 阅读
  5. Koa框架

    2024-07-16 16:32:01       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 16:32:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 16:32:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 16:32:01       62 阅读
  4. Python语言-面向对象

    2024-07-16 16:32:01       72 阅读

热门阅读

  1. js原生ajax请求

    2024-07-16 16:32:01       23 阅读
  2. Oracle权限语句(创建用户,系统权限管理)

    2024-07-16 16:32:01       21 阅读
  3. 05 - FFmpeg 提取 PCM 音频裸数据

    2024-07-16 16:32:01       19 阅读
  4. Linux exec 命令和Python exec 函数 区别

    2024-07-16 16:32:01       25 阅读
  5. Nextjs 调用组件内的方法

    2024-07-16 16:32:01       23 阅读
  6. HW面试经验分享 | 北京蓝中研判岗

    2024-07-16 16:32:01       24 阅读
  7. HOW - React Suspense 优化懒加载和异步数据加载

    2024-07-16 16:32:01       25 阅读
  8. 消息队列-RabbitMQ

    2024-07-16 16:32:01       20 阅读
  9. jquery ajax实现上传文件

    2024-07-16 16:32:01       23 阅读
  10. 八、golang基础之reflect反射

    2024-07-16 16:32:01       18 阅读
  11. 关键字 internal

    2024-07-16 16:32:01       24 阅读
  12. c++字符串实现join方法,使用模板

    2024-07-16 16:32:01       25 阅读