Django实例
更新:今年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实例的更多相关文章
- Web框架本质及第一个Django实例 Web框架
Web框架本质及第一个Django实例 Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...
- 【Django实例】博客1
(上一篇) 一.概述 Blog是一个博客应用. dbe工程的目录结构,参考<序言>的最后部分.blog应用位于/home/russellluo/Django/dbe/dbe/blog目录下 ...
- django实例收集
django笔记(一)(模板渲染变量.字典.for循环.索引.条件语句) django笔记(二) django环境准备与笔记(三) django笔记(四) django笔记(五) Views的补充 w ...
- Web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- WEB框架本质和第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 总的来说:Web框架的本质就是浏览 ...
- Django之Web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- Django学习笔记之Web框架由浅入深和第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- DAY15-web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- Web的本质以及第一个Django实例.
Web框架的本质: 所有的Web应用本质上就是一个socket服务器, 而用户的浏览器就是一个socket客户端. import socket sk = socket.socket() s ...
随机推荐
- MySQL 导入导出数据库、表
使用 GUI 软件很好操作,下面介绍命令行操作. 导出 cmd 命令 # 1.1 导出整个数据库 mysqldump -hlocalhost -uroot -p student_db > C:\ ...
- 微信小程序之 3d轮播(swiper来实现)
以前写过一篇3d轮播,就是这篇,使用的方法比较笨拙,而且代码不简洁.这次发现swiper也能实现同样的效果.故记录一下. 先看看效果: wxml: <swiper previous-margin ...
- Go-常用库的介绍
一.Go常用包介绍 fmt.它实现了格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开 发者使用最为频繁的函数. io.它实现了一系列非平台相关的IO相关接口 ...
- 分布式监控系统开发【day37】:需求讨论(一)
本节内容 为什么要做监控? 常用监控系统设计讨论 监控需求讨论 如何实现监控服务器的水平扩展? 监控系统架构设计 一.为什么要做监控? 熟悉IT监控系统的设计原理 开发一个简版的类Zabbix监控系统 ...
- JDBC 关闭数据库连接与自动提交【转】
// Jdbc关闭数据库连接时,会隐含一个提交事务的操作 private final static String DB_DRIVER = "oracle.jdbc.driver.Oracle ...
- DirectX11 With Windows SDK--11 混合状态与光栅化状态
前言 虽然这一部分的内容主要偏向于混合(Blending),但这里还需提及一下,关于渲染管线可以绑定的状态主要有如下四种: 光栅化状态(光栅化阶段) 采样器状态(像素着色阶段) 混合状态(输出合并阶段 ...
- 大数据基础-2-Hadoop-1环境搭建测试
Hadoop环境搭建测试 1 安装软件 1.1 规划目录 /opt [root@host2 ~]# cd /opt [root@host2 opt]# mkdir java [root@host2 o ...
- Entity Framework查询
Entity Framework是个好东西,虽然没有Hibernate功能强大,但使用更简便.今天整理一下常见SQL如何用EF来表达,Func形式和Linq形式都会列出来(本人更喜欢Func形式). ...
- StringBuffer/StringBuilder总结
- MinGW GCC 8.1.0 2018年5月2日 出炉啦
MSYS_MinGW-w64_GCC_810_x86-x64.7z for x86 x64 59.0 MB发布日期: 2018-05-04 下载地址:https://sourceforge.net/p ...