一、 创建项目

其中:

确认项目是否创建成功:

在 manage.py 目录上运行 python manage.py runserver

server 启动后,在浏览器访问 http://127.0.0.1:8000,能正常打开网页表示项目建立成功。

注意:

二、 创建应用

应用和项目有什么区别?应用是一个专门做某件事情的网络应用程序——比如博客系统等。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用,应用也可以被很多个项目使用。我们以一个简单的图书-英雄的应用为例,简单走一遍 Django 开发的流程。

首先在 manage.py 同级目录下创建图书应用,命令如下:

python manage.py startapp booktest

创建之后便可在 manage.py 同级目录下看到一个名为 booktest 的目录,其中包含一些预先设置的 py 文件。

booktest 应用的设计:

三、 编写模型——Model

模型(Model)负责与数据库相关的操作。

默认数据库是 sqlite,可以通过修改 settings.py 来改变默认数据库。

step1:编写模型类

定义模型类的目的包括:

1. 根据模型类的定义生成 sql 语句,并创建数据库表

2. 根据模型类生成对象,将对对象的各种操作映射到数据库中表格内容的变化(增删改查)

django 2.0中:
hbook = models.ForeignKey(BookInfo, on_delete=models.CASCADE)

step2:生成数据库表

step3: 测试数据

step4: 关联对象的操作

四、 创建后台管理站点——Admin

一般一个站点分为“内容发布”和“公共访问”两部分。内容发布的部分负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味、缺乏创造力的工

作。为此,Django 会根据定义的模型类完全自动的生成管理模块

step1:创建一个管理员用户

运行命令: python manage.py createsuperuser

根据提示输入用户名,邮箱以及密码启动服务器,访问 http://127.0.0.1:8000/admin,输入用户名、密码即可进入管理站点,,默认可以对 groups、

users 进行管理。

step2: 管理界面本地化

编辑 settings.py,设置语言和时区

step3: 向 admin 注册 booktest 的模型,以便对其进行管理

step4: 自定义管理界面

列表页的定制:

添加、修改页的定制:

五、 编写视图——View

视图对 web 请求进行回应。视图的本质是一个函数,定义在 views.py 中。它接收request 对象作为第一个参数,request 中包含了请求的信息。

step1: 编写视图函数

step2: 配置 URL 路由

用户的请求到达服务器后,Django 使用正则表达式匹配请求的 URL,先去项目下的urls.py 中进行匹配,找到二级路由继续进行匹配,一旦匹配成功,则调用相应的视图。

注意:只匹配路径部分,即除去域名、参数等

1. 在项目(mysite)的 urls.py 中配置 bookset 的 urls 的路由

2. 在 bookset 的 urls.py 中调用视图

启动 server,访问 http://127.0.0.1:8000 便可看到 index 函数中的输出信息。

注意: Django2.0 开始路由的配置发生了变化,开始使用 path()函数,但它依然向老版本兼容。而这个兼容的办法,就是用 re_path()方法代替

path()方法。re_path()方法在骨子里,根本就是以前的 url()方法。

后面的章节中,你只需要使用 from django.urls import re_path 正确导入 re_path()方法,并用它替换 url()方法就可以了。

六、 编写模板——Template

模板是 html 页面,可以根据视图中传递的数据填充值。

step1: 创建 templates 目录

在项目目录下创建 templates 目录,并在 templates 目录中继续创建 booktest 目录。templates 下可以添加多个模板,以应用为单位进行组织。

step2: 修改 settings.py 文件,设置 TEMPLATES 的 DIRS 值

step3: 定义 index.html

在 templates\booktest 下创建 index.html

step4:编辑 views.py,在方法中调用模板

这时,启动 server,访问 127.0.0.1:8000 便可看到 index.html 显示的内容

step5: 在模板中显示数据

视图(V)从模型(M)中获得数据,通过上下文传递给模板(T),模板进行处理。

在 views.py 的 index 方法中改写:

在 index.html 中接收传进的 context,并做处理。

在模板中访问视图传递的数据的两种方式:

1.{{输出值}} , 该输出值可以是变量,也可以是对象.属性

2.{%执行代码段%}

运行 server,便可看到 book 的名字信息。

七、 总结

流程:
 1.设计
    模型类(数据表,字段,类型)
    视图中的方法
    视图中方法对应的 url,url 路由
 2.编写模型,使用简单 API 与数据库交互
 3.使用 Django 的后台管理功能维护数据
 4.编写视图,接收用户请求,通过模型获得数据,并将数据传递给模板
 5.调用模板,接收并处理视图传递的数据,最终呈现给用户

转载于:https://www.cnblogs.com/sunBinary/p/10424311.html

创建一个 Django 项目相关推荐

  1. Django从理论到实战(part3)--创建一个Django项目

    学习笔记,仅供参考 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的写一下. 文章目录 创建一个Django项 ...

  2. 创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...

    一.创建python虚拟环境 首先,为什么要创建python的虚拟环境? 因为,在实际的项目开发中,每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要 我们根据需求不断的更新或卸载相应的库 ...

  3. 把python37添加到环境变量配置_关于在win 10上成功创建一个Django项目时遇到django-admin的手动配置环境变量问题。...

    前言 初学Python Web 在创建第一个Djang项目的时候出现了很多的问题,今天和大家分享并记录一下这次艰难的历程! 一.官网下载Python以及安装Django 1.Python的下载安装 链 ...

  4. python虚拟环境中安装diango_创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...

    一.创建python虚拟环境 首先,为什么要创建python的虚拟环境? 因为,在实际的项目开发中,每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要 我们根据需求不断的更新或卸载相应的库 ...

  5. 使用Pycharm创建一个Django项目

    本文为Django项目创建的简单介绍,更为详细的Django项目创建,编辑可以参考如下教程: IMOOC Django入门与实践-http://www.imooc.com/learn/790 Pych ...

  6. 初学者用pycharm创建一个django项目和一个app时需要注意的事项

    目录 如何新建一个djiango项目: 如何创建一个app: 如何启动一个django项目: 新建一个django项目,需要注意以下几项配置: 如何新建一个djiango项目: 1.在pycharm中 ...

  7. 使用 Pycharm 创建一个 Django项目(详解)

    文章目录 Django 简介 创建Django的虚拟环境 1.这里我使用的是anaconda navigator创建的,选择environment,点击create. 2.设置环境名称,选择pytho ...

  8. 创建第一个Django项目

    创建第一个Django项目: 我们将介绍Django 管理工具及如何使用 Django 来创建项目,第一个项目我们以 HelloWorld 来命令项目. 测试版本说明: python 3.7 Djan ...

  9. python创建django项目_搭建Python-Django环境,创建第一个Django项目

    曾想学爬虫,没想到误入python web班,在美女老师shirely的指导下,搭建了好Django环境,试着开始做第一个web项目 一.Python环境安装 1.Python2.7的下载 从Pyth ...

最新文章

  1. 数据导出为Excel(未完)
  2. matlab求解外弹道,基于MATLAB∕Simulink的通用质点外弹道程序设计.pdf
  3. 第24讲 | 比特币专题(一)历史与货币
  4. MySQL更新会影响查询吗_mysql更新查询不会执行
  5. JDK 12的String :: transform方法的简要但复杂的历史
  6. 计算机无法更新正在撤销更改,win7系统无法完成更新正在撤销更改的解决办法...
  7. 14寸笔记本电脑推荐_2020笔记本电脑推荐(小米篇)
  8. Selenium2+python自动化57-捕获异常(NoSuchElementException)
  9. 使用HttpClient实现对第三方服务器的请求并接受返回数据
  10. webstorm怎样查找历史记录
  11. pod访问外部mysql_Pod中访问外部的域名配置
  12. Linux环境运行jmeter+测试报告查看
  13. 基于Spring Boot 技术的后台管理框架
  14. 设置谷歌浏览器深色黑色背景
  15. 二、echarts地图从全国进省从省进市
  16. C++11 时间编程(3)时间点表示time_point,时钟类型,当前时间获取
  17. JXT查询数据库导入到Execl
  18. 京津冀地区地貌类型空间分布数据
  19. IE被劫持的手动解除
  20. jt808终端鉴权_北斗终端设备通信协议(JT/T808)

热门文章

  1. webService 使用CXF 实现简单的helloworld
  2. mysql事务未提交读_mysql事务之未提交读Read uncommitted(仅学习)
  3. 医学论文摘要撰写的四要素以及注意事项
  4. 26Java中的多态
  5. C语言 | 编写一个使用指针的c函数,交换数组a和数组b中的对应元素
  6. Matlab | Matlab从入门到放弃(5)——矩阵与format
  7. 在PyPI上发布自己的python包
  8. matlab ask函数,matlab函数大全(非常实用)
  9. php怎么去除变量里的换行,php去除字符串换行符示例分享
  10. static_cast、dynamic_cast、const_cast和reinterpret_cast总结