更新:今年8月在深圳和嵩天老师居然见面了,很开心。嵩天老师很和蔼。

===========

今天看了嵩天老师的视频,感觉讲的很好,于是看着视频自己做了一个初步的实例认识。

步骤1,新建一个Web框架

新建代码:django-admin startproject mysite   #这里是名字叫mysite的项目名称(其实我这里用的是pycharm professional版本的建立Django方法建立的,实际上是一样的,环境是win10教育版+pycharm pro2016.3)

文件视图如下图所示:

mysite/                #最外层目录

mysite/            #工程目录,保存代码和文件

_init_.py      #将mysite定义为包的空文件

settings.py    #部署和配置文件

urls.py        #URL路由声明文件

wsgi.py        #基于WSGI(web service gate interface)

manage.py          #与Django工程交互的命令工具

步骤2-1创建一个具体的应用

进入mysite(最外层目录)然后代码创建应用

python manage.py startapp helloapp

创建过应用后,文件视图为:

mysite/                #最外层目录

helloapp/

migrations/

_init_.py

admin.py

apps.py

models.py

tests.py

views.py

mysite/            #工程目录,保存代码和文件

_init_.py      #将mysite定义为包的空文件

settings.py    #部署和配置文件

urls.py        #URL路由声明文件

wsgi.py        #基于WSGI(web service gate interface)

manage.py          #与Django工程交互的命令工具

步骤2-2,然后打开helloapp中的views.py,写入如下代码:

from django.http import HttpResponse
def hello(request): #把request当成用户的访问
return HttpResponse("This is your first webpage,fighting!") #访问时,hello函数返回句子。

步骤2-3,然后再打开mysite/urls.py,这一步是为了指定URL与响应之间的关系,改为:

from django.contrib import admin
from django.urls import path
from helloapp import views #把helloapp的views导入进来,这个views其实就是给我们展示在浏览器上的东西 urlpatterns = [
path('index/', views.hello), #注意加上这个逗号,path的参数一是某个URL,参数二是某个处理函数,表示URL与处理函数的关联
path('admin/', admin.site.urls),
]

然后我们要试运行一下,用代码:

python manage.py runserver(注意:在最外层目录下运行,运行方式是shift+右键),意思启动一个调试的web服务器,屏幕中会出现一个IP地址,http://127.0.0.1:8000/,将这个IP放入浏览器,你会发现hello函数中显示的句子出现在浏览器上。

这里是为什么呢?

是因为我们在urlpatterns中的“path('index/', views.hello),”定义了URL的子目录index/,故我们http://127.0.0.1:8000/index/

这就是我们最终得到的效果。

以上是我们做出的第一个APP,实际上一个真正的工程是可以由很多应用组成的,其中有互相之间的联系或调用关系。接下来我们再做另外一个能显示页面而不是一个句子的APP。

步骤1,新建一个APP名字为hello2app,

用python manage.py startapp hello2app实现。此时在第一层的mysite里就多了一个文件夹叫hello2app。

步骤2,在hello2app目录下创建templates目录,然后将Demo.html文件考入到这个目录中

接下来打开hello2app/views.py来完成对HTML完成响应这样一个功能。

具体代码如下:

from django.shortcuts import render
def hello(request):
return render(request,"Demo.html")
# Create your views here.

增加了返回操作之后,我们需要再设定本地路由,在hello2app/下新建urls.py,在本地路由中我们要指定本地路由与操作之间的关系,修改为:

from django.urls import path
from . import views urlpatterns = [
path('', views.hello)
]

步骤3,然后在全局路由文件中增加对本地路由的引用,在全局路由中(mysite/urls.py)我们需要引入include函数,即“from django.urls import path,include”具体代码如下:

from django.contrib import admin
from django.urls import path,include
from helloapp import views urlpatterns = [
path('index2/', include('hello2app.urls')),
path('index/', views.hello),
path('admin/', admin.site.urls),
]

步骤4,我们还需要增加对templates的路径设置,即在mysite/settings.py修改“DIRS”,具体修改为:

'DIRS': [os.path.join(BASE_DIR, 'hello2app/templates')],   #os.path.join是指将后面两个路径合并,BASE_DIR是工程路径+合理hello2app/tem...

步骤5,最后,我们用:

python manage.py runserver

来启动服务器,输入“http://127.0.0.1:8000/index2/”,得到:

便大功告成了。

注意:整个逻辑过程是如下,

对于第一个app,app里的views.py写好用户请求访问函数,然后由全局路由urls.py来调用,这时会产生views的页面效果。

对于第二个app,app里的views写好用户请求访问函数的一个网页,然后新建一个本地路由调用views,然后由全局路由函数调用本地路由,最后被调用的网页也要注明被调用的绝对路径。

Django实例的更多相关文章

  1. Web框架本质及第一个Django实例 Web框架

    Web框架本质及第一个Django实例   Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...

  2. 【Django实例】博客1

    (上一篇) 一.概述 Blog是一个博客应用. dbe工程的目录结构,参考<序言>的最后部分.blog应用位于/home/russellluo/Django/dbe/dbe/blog目录下 ...

  3. django实例收集

    django笔记(一)(模板渲染变量.字典.for循环.索引.条件语句) django笔记(二) django环境准备与笔记(三) django笔记(四) django笔记(五) Views的补充 w ...

  4. Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  5. WEB框架本质和第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 总的来说:Web框架的本质就是浏览 ...

  6. Django之Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  7. Django学习笔记之Web框架由浅入深和第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  8. DAY15-web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  9. Web的本质以及第一个Django实例.

       Web框架的本质:    所有的Web应用本质上就是一个socket服务器, 而用户的浏览器就是一个socket客户端. import socket sk = socket.socket() s ...

随机推荐

  1. PR视频剪辑

    PR视频剪辑 新手问题1: 将素材导入到Adobe Premiere Pro CC后为什么无法拖入到时间轴上 解决办法:没有建立有序列所致,CC不会一开始就让你新建序列,图中间处写的好清楚“无序列”. ...

  2. function Language

    什么是函数式语言: 函数式语言(functional language)一类程序设计语言.是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型.这种语言具有较强的组织数据 ...

  3. 网页三剑客之JS

    1.javascrapt介绍 js概述 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释 ...

  4. HP Z620 Windows 7 系统安装(含磁盘阵列)

    由于HP Z620 做了Raid 5磁盘阵列,导致安装系统时,系统加载不了磁盘的驱动,无法将系统安装到硬盘上,正确的方法是:下载SATA驱动,在需要加载驱动的地方,利用另一个U盘,“浏览”解压好的驱动 ...

  5. tensorflow 模型保存和加载

    使用 tf.train.Saver 保存:tf.train.Saver.save(sess, save_path, global_step=None, latest_filename=None, me ...

  6. luogu P5293 [HNOI2019]白兔之舞

    传送门 关于这题答案,因为在所有行,往后跳到任意一行的\(w_{i,j}\)都是一样的,所以可以算出跳\(x\)步的答案然后乘上\(\binom{l}{x}\),也就是枚举跳到了哪些行 如果记跳x步的 ...

  7. Thread和Runnable的区别

    Runnable源码 Thread源码 结论 Thread实现了Runnable接口的类,使得run支持多线程. 因类的单一继承原则,推荐使用Runnable接口实现多线程

  8. gzip 压缩

    nginx 开启静态 gzip 配合 Vue 构建   在站点配置添加如下代码: location ~* \.(css|js)$ { gzip_static on; } 这是 nginx 的静态 gz ...

  9. 第十三章 部署Java应用程序

    打包 清单文件被命名为MANIFEST.MF,用于描述归档特征. 清单文件被分为多个节, 第一节被称为主节,作用于整个文件; 其他节则必须起始于Name的条目. 节之间空行分开. jar cfm JA ...

  10. 基于VC的MFC界面开发

    教你熟悉VC6.0创建一个可视化软件的过程 UpdateData(TRUE);//将输入数据赋给文本框变量. UpdateData(FALSE);//将内容显示在文本框中 AfxMessageBox( ...