Django开发基础----创建项目/应用
环境:
1、python 3.6.2
2、安装django:pip install django==1.10.3
*下面以开发一个简单的用户签到系统介绍Django的使用
创建Django项目:
命令行创建django项目步骤:
A django-admin startproject guest(project名)
B 进入guest目录
C python3 manage.py startapp sign(创建APP,多次执行会生成多个app)
用PyCharm打开guest目录,目录结构如下图:

目录说明:
guest: 项目的容器。
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
guest/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
guest/settings.py: 全局配置文件;包括Django 模块应用配置,数据库配置,模板配置等。
guest/urls.py: 路由配置文件。
guest/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
migrations/:用于记录 models 中数据的变更。
admin.py:映射 models 中的数据到 Django 自带的 admin 后台。
apps.py:在新的 Django 版本中新增,用于应用程序的配置。
models.py:创建应用程序数据表模型(对应数据库的相关操作)。
tests.py:创建 Django 测试。
views.py:控制向前端显示哪些数据。
接下来,进入guest目录输入以下命令,启动服务器:
python3 manage.py runserver
Django 默认会通过本机的 8000 端口来启动项目,如果你的当前环境该端口号被占用了,也可以在启动时指定 IP 地址和端口号。
python3 manage.py runserver 127.0.0.1:8001
打开浏览器,访问:http://127.0.0.1:8001

看到以上页面,说明Django已经开始工作了。
环境已经就绪,下面进入真正的项目应用开发过程
1、配置一下 guest/settings.py 文件,将 sign 应用添加到项目中。

2、打开 guest/urls.py 文件添加用户登录页面的路由。

3、打开../sign/views.py 文件创建 index 函数。

定义 index 函数,并通过 HttpResponse 类向页面返回字符串“Hello django”。 HttpResponse 类存在 django.http.HttpResponse 中,以字符串的形式传递给前端页面数据。
4、启动django执行程序
A、pycharm下可直接启动
B、命令行执行:python manage.py runserver 127.0.0.1:8001
访问127.0.0.1:8001/index

5、使用模板(Templates)
现在用 HTML 页面来替代“Hello django”字符串,那么处理方式也会有所不同。
在应用 sign/目录下创建 templates/index.html 文件。

修改视图文件 views.py,这里抛弃 HttpResponse 类,转而使用 Django 的 render 函数。该函数的第一个参数是请求对象的,第二个参 数返回一个 index.html 页面

再次访问127.0.0.1:8001/index,效果如下图

总结一下,Django的工作流可以概括成下图:

需要说明的是,这个处理流程并非 Django 的完整处理过程,其中最主要的就是缺失了数据层(model) 的操作。
我理解views文件在Django中非常重要,它是连接页面与数据的中间纽带。拿登录的例子来讲,用户在页面上输入了用户名和密码点击登录。那么 request 请求会由视图层views来接收,如何提取出用户名和密码的数据,如何用这些数据去查询数据库,再如何将登录成功的页面返回给用户,这些全部由视图层views来完成。
与大多数的Web端开发框架一样,Django开发同样使用MVC模式。
M ,数据存取部分,由 Django 数据库层处理,本章要讲述的内容。
V ,选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理。
C ,根据用户输入委派视图的部分,由 Django 框架根据 URLconf 设置,对给定 URL 调用适当的 Python 函数。
由于 C 由框架自行处理,而 Django 里更关注的是模型(Model)、模板(Template)和视图(Views), Django 也被称为 MTV 框架 。
在 MTV 开发模式中:
M 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效
T 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显 示。
V 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看 作模型与模板之间的桥梁。
Django开发基础----创建项目/应用的更多相关文章
- C#-Xamarin的Android项目开发(一)——创建项目
创建项目 使用Xamarin开发安卓项目,首先需要安装VS2017以上版本.因为VS2017以上的版本,可以直接创建Xamarin项目. 另外用Xamarin开发安卓项目,还需要使用Intel的CPU ...
- django学习之——创建项目
创建项目让我迷茫了会: 直接cmd 执行django-admin.py startproject pro_name 肯定是不行的 必须cd到 D:\Program Files\Python3.3.5 ...
- django入门 01 创建项目
安装django库 pip install django 创建--by 终端 django-admin startproject myproject 通过命令创建的django项目,默认不含templ ...
- Django开发基础----操作数据库
Django中对数据库的操作是由Models来完成的 Models是什么? 通常,一个Model对应数据库的一张数据表 Django中Models以类的形式出现 它包含了一些基本字段以及数据的一些行为 ...
- Django 使用mysql 创建项目
一.安装 mysql 和 mysqlclient 1. 安装 mysql ,https://www.jianshu.com/p/07a9826898c0 2. pip3 install mysqlcl ...
- Django安装与创建项目
下载 https://media.djangoproject.com/releases/1.11/Django-1.11.20.tar.gz 解压 tar -zvxf Django-1.11.20.t ...
- Asp.NetCore Web开发之创建项目
这一节,开始讲一下如何创建一个Asp.netCore Web项目,有两种常用的方式,一种是通过.NetCore SDK使用命令创建,另一种如果你使用的VisualStudio,可以直接根据引导创建. ...
- Android开发学习—— 创建项目时,不是继承activity,而是继承ActionBarActivity
对于我们新建android项目时, 会 继承ActionBarActivity. 我们在新建项目时, 最小需求的sdk 选择 4.0以上版本.这样 新建的android项目就是继承activity了!
- python django 重新安装不能创建项目
这里仅给大家做个思路提醒: 1.如果在别的地方找到一样的问题那就按别的方法去解决 2.如果是创建startproject的时候 报错:no module named 'mysite' 这个的话就和 ...
随机推荐
- 小白的Python之路 day5 logging模块
logging模块的特点及用法 一.概述 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你 ...
- 【开发技术】Xcode3与xcode4.2模板对比(Xcode4.2开发之一些变化)
Xcode3中IOS下的Application的模板如下: Navigation_Based Application OpenGL ES Application Tab Bar Application ...
- 【开发技术】Beyond Compare
黑色表示左右两侧的文件(夹)是一样的; 紫色表示右(左)侧是完全没有的,这时我们右击这个文件(夹),选择“复制到右(左)侧”即可: 红色表示两边都有这个文件(夹),但不完全相同,这时你就要权衡一下修改 ...
- 【视频编解码·学习笔记】3. H.264视频编解码工程JM的下载与编解码
一.下载JM工程: JM是H.264标准制定团队所认可的官方参考软件.网址如下 http://iphome.hhi.de/suehring/tml/ 从页面中可找到相应的工程源码,本次选择JM 8.6 ...
- Codeforces 895C - Square Subsets 状压DP
题意: 给了n个数,要求有几个子集使子集中元素的和为一个数的平方. 题解: 因为每个数都可以分解为质数的乘积,所有的数都小于70,所以在小于70的数中一共只有19个质数.可以使用状压DP,每一位上0表 ...
- MySql Outer Join 简单化
查询from语句中的Outer Join可以在多种情况下被简化: 在解析阶段,右外连接操作可以被转变为等下ode值包含left join的操作,在一般情况下,转变: (T1, ...) RIGHT J ...
- SQL Server 2005的服务器角色(public)的问题
SQL Server 默认会有9个服务器角色,而且这些角色是不能删除和新增.修改的.关于这些角色相关介绍和权限,请参考 其中有一个特殊的角色public,任何登录都会属于该角色,它只拥有的权限是VIE ...
- SEO—Meta标签优化
Meta标签之一"标题": 标题是网站中很重要的一个标签,他在搜索引擎中是直接显示出来的,一般情况下要网站的核心关键词和网站名称都写进去,这样更有利于网站的排名.但是要注意标题的长 ...
- angular4在prod模式下的JIT编译问题
最近利用angular4开发一个项目,由于画面中的显示都是从数据表中读取,通过设置显示FLAG和显示顺序对画面布局按既定规则控制的, 所以必须利用动态编译实现. 方法如下, 1,获取JitCompil ...
- centos7+ansible自动化工具使用
一.基础介绍 ========================================================================================== 1. ...