初始Django—Hello world
1. 准备环境
> python -V
Python 3.7.
> pip -V
pip 20.0. from c:\python3\lib\site-packages\pip (python 3.7)
> pip install django
> python -m django --version
2.2.
2. 创建along项目
> django-admin startproject along
将会创建一个 along 目录,它的目录结构大致如下:
along/
manage.py
along/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
注:
- 外部 along/ 根目录是项目的容器,它的名字对Django无关紧要,可以将其重命名为您喜欢的任何名称;
- manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。可以阅读 django-admin and manage.py 获取所有 manage.py 的细节。也可以 python .\manage.py -h 查看用法。
- 里面一层的 along/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 along.urls).
- along/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
- along/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。
- along/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。
- along/asgi.py: 兼容ASGI的Web服务器为您的项目提供服务的入口点。
- along/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。
3. 创建hello world应用
> cd .\along\
> python manage.py startapp hello
将会创建一个 hello 目录,它的目录结构大致如下:
hello/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
4. 编写hello views
编写 along/views.py
from django.shortcuts import render
from django.http import HttpResponse def index(request):
return HttpResponse("Hello world~")
这是 Django 中最简单的视图。如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。
5. urls 映射
(1)在 hello 目录里新建一个 urls.py 文件
from django.urls import path
from . import views urlpatterns = [
path('', views.index),
]
(2)下一步是要在根 URLconf 文件中指定我们创建的 hello.urls 模块。在 along/urls.py 文件的 urlpatterns 列表里插入一个 include(), 如下:
from django.contrib import admin
from django.urls import include, path urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', include('hello.urls')),
]
注:
- 函数 include() 允许引用其它 URLconfs。每当 Django 遇到 include() 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。
- include() 的理念是使其可以即插即用。因为 hello 应用有它自己的 URLconf( hello/urls.py ),他们能够被放在其他任何路径下,这个应用都能够正常工作.
(3)path()参数
函数 path() 具有四个参数,两个必须参数:route 和 view,两个可选参数:kwargs 和 name。
- path() 参数: route
route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。
这些准则不会匹配 GET 和 POST 参数或域名;例如:
URLconf 在处理请求 https://www.example.com/myapp/ 时,它会尝试匹配 myapp/
处理请求 https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/。
- path() 参数: view
当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入
- path() 参数: kwargs
任意个关键字参数可以作为一个字典传递给目标视图函数
- path() 参数: name
为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。
6. 运行调用借口测试
(1)启动服务
> python manage.py runserver 127.0.0.1:9000
注:
- 127.0.0.1:监听地址
- 9000:监听端口
(2)网页访问测试
(3)命令行访问
> curl 127.0.0.1:9000/hello
(4)python调用借口
import requests url = "http://127.0.0.1:9000/hello/"
result = requests.get(url)
print(result.content)
初始Django—Hello world的更多相关文章
- 初始Django
Django概述 Django是什么 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C. Django的主要目标是使得开发复杂的 ...
- Django 00-socket、wsgi及初始django学习心得
HTTP基本原理1.http简述:http协议永远都是客户端发起请求,服务端回送请求.客户端和服务端本质上是一个socket客户端和服务端,http协议可以说是基于socket的再上层封装2.http ...
- [oldboy-django][1初始django]后台管理页面的布局 + djano母版(继承html)
完善学员管理系统 - bootstrap fontawesome - 分页,路径导航,表格(class样式),消息图标(i标签),邮件图标(i标签) - 响应式导航 @media(min-width, ...
- [oldboy-django][1初始django]web框架本质 + django框架 + ajax
web框架本质 浏览器(socket客户端) - 发送请求(ip和端口,url http://www.baidu.com:80/index/) - GET 请求头(数据请求行的url上: Http1. ...
- [oldboy-django][1初始django]昨日回顾
1 web框架的本质:socket客户端和服务端通信,socket遵循http协议(短连接,无状态),规定了数据格式(消息头,消息体):传输的数据本质上是字符串 2 django: django安装( ...
- 初始 Django
Python 知识点:函数,面向对象 前端开发:HTML,CSS,JavaScript,jQuery,BootStrap MySQL 数据库 Python 的 WEB 框架 Flask:轻量化,第三方 ...
- [oldboy-django][1初始django]模态对话框 + 动态加载gif (多对多数据库表)
ajax+对话框(多对多) - 遮罩层,动态加载gif层,对话框层, a.一点击添加,绑定事件: - 出现遮罩层和动态gif层 - ajax向后台发送请求获取所有班级数据 - success,隐藏动态 ...
- Django1.8教程——从零开始搭建一个完整django博客(一)
第一个Django项目将是一个完整的博客网站.它和我们博客园使用的博客别无二致,一样有分类.标签.归档.查询等功能.如果你对Django感兴趣的话,这是一个绝好的机会.该教程将和你一起,从零开始,搭建 ...
- Django学习笔记(4)——Django连接数据库
前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...
随机推荐
- 吴裕雄--天生自然python学习笔记:Python3 正则表达式
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参 ...
- 使用阿里大于平台发送短信验证码java代码实现
待续..网站app后台还未完成,不能添加签名,短信不能正常发送. Tip: https://help.aliyun.com/document_detail/55284.html?spm=5176.sm ...
- 最简化的DirectX 11开发环境的配置 VS2010
转载自:http://blog.csdn.net/zhmxy555/article/details/7672101 在编写基于DirectX 11的应用程序之前,我们当然需要在IDE中加入Direct ...
- vm文件的优点
vm文件的优点 相较于内容写在jsp 文件: 1.在网页上上浏览和下载的内容用的是同一套,也就是说只需要维护一套内容,页面上看到的和下载得到的是一致的. 2.版本控制较为简便, 实现了页面内容和jsp ...
- 在 mac osx 上安装OpenOffice并以服务的方式启动
OpenOffice是Apache基金会旗下的一款先进的开源办公软件套件,包含文本文档.电子表格.演示文稿.绘图.数据库等.包含Microsoft office所有功能.它不仅可以作为桌面应用供普通用 ...
- connect() failed (111: Connection refused) while connecting to upstream报错处理
新lnmp环境调试项目时,nginx报错如下: 解决: 发现php-fpm.conf是以套接字方式通信,而nginx是以端口方式通信,见下图: 将nginx.conf修改为如下,重新reload即可
- 谈谈Spring的IoC之注解扫描
问题 IoC是Inversion of Control的缩写,翻译过来即"控制反转".IoC可以说是Spring的灵魂,想要读懂Spring,必先读懂IoC.不过有时候硬着头皮 ...
- JAVA学习大纲
1.第一节 JAVA概念与JDK的安装 (1)JDK的安装和环境变量的设置: (2)相关基本概念:JDK.SDK.JRE.JVM.J2SE.J2EE.J2ME.java API.JAVA语言特点: ( ...
- (为容器分配独立IP方法二)通过虚拟IP实现docker宿主机增加对外IP接口
虚拟IP.何为虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机,所有项目中数据库链接一项配 ...
- 从租人APP沦为性工作发布平台 看共享经济监管边界
看共享经济监管边界" title="从租人APP沦为性工作发布平台 看共享经济监管边界"> 继直播类软件部分涉黄之后,最近火爆的各类"租人"软件 ...