一、 创建项目

其中:

确认项目是否创建成功:

在 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.调用模板,接收并处理视图传递的数据,最终呈现给用户

创建一个 Django 项目的更多相关文章

  1. Django之真正创建一个django项目

    真正创建一个django项目 1 创建Django项目     :new-project 2 创建APP :  python manager.py startapp app01 3 setting 配 ...

  2. 创建一个Django项目

    创建一个django项目: 1. django-admin  startproject student_manage(项目名) 2. cd student_manage python manage.p ...

  3. Python-Django学习笔记(二)-创建一个Django项目与应用

    1.创建一个Django项目 打开cmd命令行,设置好工作目录(cd 目录路径),然后输入 django-admin startproject projectname #必须安装好Django才可以执 ...

  4. 如何创建一个Django项目

    Django 软件框架 软件框架是由其中的各个模块组成,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发. MVC简介 MVC框架的核心思想是:解耦,让不同的代码块之间降低耦合,增强代码的 ...

  5. 创建一个Django项目的基本步骤

    创建一个Django 的常规步骤 1.寻找一个磁盘目录,比如 e: 2.django-admin startproject ops 3.cd ops 4.python manage.py starta ...

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

    如何新建一个djiango项目: 1.在pycharm中点击File,选择new project,点击djiango,在右面的Location中将untitile改为你的项目名,其余部分注意见下图: ...

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

    在使用python写脚本一段时间后,想尝试使用Django来编写一个python项目,现做以下记录备忘: 1.创建项目 如果本地没有安装与所选python版本对应Django版本,pycharm会自动 ...

  8. Pycharm创建一个Django项目

    1.创建项目 如果本地没有安装与所选python版本对应Django版本,pycharm会自动下载相应的版本: 创建后运行项目,默认页面为http://127.0.0.1:8000/,打开后: 出现上 ...

  9. Python 创建一个Django项目

    1 环境搭建及创建 1) 安装Django 方法一:pip install django 方法二:Pycharm File--settings--Project--Python Interpreter ...

随机推荐

  1. Simula-Virtual function

    Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the ...

  2. day19-2 生成器,递归函数

    目录 生成器 有关yield的理解 实现range()函数 生成器表达式 递归 思考 斐波那契额 汉诺塔 二分法 生成器 自定义的迭代器 yield关键字: 和return一样,接收值,但不终止函数 ...

  3. vue调试工具vue-devtools的安装

    一.可以在chrome商店中下载安装,当然需要FQ哈,你懂得~: 二.手动安装: 1.将github上项目文件克隆到本地,https://github.com/vuejs/vue-devtools: ...

  4. Shell(四)函数

    函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. 一.格式 shell中函数的定义格式如下: [ function ] funname [()] { action; ...

  5. H5图片上传、压缩

    1.注册input file标签的onchange事件: 2.检查图片格式: 3.检查图片大小: 4.压缩图片 5.上传图片至服务器: 前端代码: document.getElementById('i ...

  6. JavaScript变量提升(Hoisting)的小案例

    变量提升(Hoisting)的小案例 执行以下代码的结果是什么?为什么? 答案 这段代码的执行结果是undefined 和 2. 这个结果的原因是,变量和函数都被提升(hoisted) 到了函数体的顶 ...

  7. 05006_Linux的jdk、mysql、tomcat安装

    1.软件包下载链接:软件包下载 密码:advk 2.安装JDK (1)查看当前Linux系统是否已经安装java,输入 rpm -qa | grep java : (2)卸载两个openJDK (3) ...

  8. Nginx 项目部署和配置

    nginx 作为代理服务器,需要代理多个项目的话配置如下: server { listen       80; server_name  localhost; #charset koi8-r; #ac ...

  9. 洛谷 P2507 [SCOI2008]配对

    P2507 [SCOI2008]配对 题目背景 四川NOI2008省选 题目描述 你有 n 个整数Ai和n 个整数Bi.你需要把它们配对,即每个Ai恰好对应一个Bp[i].要求所有配对的整数差的绝对值 ...

  10. ubuntu下使用Nexus搭建Maven私服

    ubuntu下使用Nexus搭建Maven私服 1.私服简介: 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服, ...