第一节:简单的请求(Requests)和响应(Responses)
目录
创建项目
在命令行中,使用cd命令进入到你想要存储你的项目的目录,然后运行下面的命令:
$ django-admin startproject mysite
这将在你的当前工作目录下创建一个mysite的目录,让我们来看创建的项目结构:
这些文件是:
- 最外面的mysite/就是你创建项目的根目录,对于Django而言这个名字起什么都可以,你可以换成任何你喜欢的名字。
- manage.py:一个实用的命令行工具,可以让你和这个Django项目进行交互
- 里面的mysite/ 目录是你的项目的实际Python包,它的名字是你在任何地方需要使用它导入的Python包名
- mysite/__init__.py:一个空文件告诉Python这个目录应该被视为一个Python package。
- mysite/settings.py:Django项目的配置文件。
- mysite/urls.py:Django项目的url声明,用来映射视图中的一个函数
- mysite/wsgi.py:WSGI兼容的web服务器如何,部署的时候会用到
开发服务器
让我们切换到manage.py所在的目录,然后运行下面的命令:
$ python manage.py runserver
你在命令行看到如下输出:
注意:请忽略输出内容中的红色区域关于数据库未迁移的警告,在后面的教程会讲到
现在Django开发服务已经运行起来了,这是一个用python编写的轻量级的web服务器,这便于你进行开发测试,不用部署生产环境用的Web服务器,比如、apache
现在在浏览器打开http://127.0.0.1:8000,你将可以看到“Welcome to Django”的页面,如下图:
修改端口
默认情况下,runserver在内部IP启动开发服务器,端口8000。
如果你想要修改服务器的端口,将端口作为命令参数。例如,我们在8080端口启动服务器
$ python manage.py runserver
如果你想要修改服务器的IP,把IP和端口作为参数(eg. 192.168.0.10:8080),例如监控所有的IP
$ python manage.py runserver 0.0.0.0:
创建名称为Polls的应用
每次编写的应用是由一个遵循一定规则的Python包组成,Django自带了一个实用工具来自动生成一个应用的基本目录结构,这样你可以专注编写逻辑代码,而不用创建目录了。
项目(project)和应用(apps)
项目和应用有什么不同呢?一个应用是一个Web应用程序,例如,一个博客系统,一个公共记录的数据库或一个简单的投票应用。一个项目是配置和站点应用的集合。一个项目可以包括多个应用。一个应用可以在多个项目使用。
在命令行进入项目的manage.py的目录,创建应用:
$ python manage.py startapp polls
这将创建一个polls的目录,如下:
编写你的第一个视图
让我们编写第一个视图,打开文件polls/views.py,并输入如下Python代码:
from django.http import HttpResponse def index(request):
return HttpResponse(“Hello,world. You’re at the polls index”)
这是Django最简单的视图,要想调用它我们需要映射它到一个url,因此需要一个url配置。
那么在polls目录创建名称为urls.py的配置文件
在polls/urls.py输入下面代码:
from django.conf.urls import url from . import views urlpatterns = [
url(r’^$’,views.index,name=’index’),
]
下一步在mysite/urls.py,导入django.conf.urls.include并且在urlpatterns列表插入一个 include()方法,如下:
from django.conf.urls import include,url
from django.contrib import admin urlpatterns = [
url(r’^polls/’,include(‘polls.urls’)),
url(r’^admin/’,admin.site.urls),
]
include()方法允许引用其他的url配置,请注意对include()方法的正则表达式没有$而是一个斜线,每当Django遇到include(),
它剔除掉匹配这点url部分并且发送剩下的部分字符串给incode()包含的url配置做进一步处理。
什么时候使用include()
当你包含其他的url模式时你应该使用include(),admin.site.urls是个例外
你已经把index视图注册到url配置。来看看它是否能正常工作,运行下面的命令:
$ python manage.py runserver
在浏览器打开http://localhost:8000/polls/,你应该能看到你定义到Index视图输出的文本“Hello, world. You’re at the polls index.”。
url()方法可以传递四个参数,两个参数是必须的:regex 和 view 还有两个可选参数:kwargs 和 name,下面我们来看一下每个参数什么作用呢
regex
regex是“regular expression”的缩写形式,这个参数以正则表达式的形式表示url路径
view
当Django找到一个匹配的正则表达式时,Django调用指定的视图方法。那么这个参数就是视图的方法。
kwargs
关键字参数,这个参数将作为字典传递给目标视图,不过这个参数用的比较少。
name
给你的url起个名字,在模板中会用到,这个强大的功能将使你对你项目的url模式适应变化,只需要修改一个文件就可以了。
这是一个基本请求和响应流程,下一节将说明如何使用数据库
第一节:简单的请求(Requests)和响应(Responses)的更多相关文章
- Chapter03 第一节 简单变量
3.1 简单变量 定义一个变量后,系统根据变量类型的不同在内存的不同区域分配一个空间,将值复制到内存中,然后用户通过变量名访问这个空间. 3.1.1 变量名 变量名的命名规则: 只能使用字母.数字.下 ...
- 第一节 简单的jsp实例
1.打开Eclipse,依次点击“File” .“New” .“Other” ,选择生成动态Web项目. 2.输入项目名字,点击Finish 生成项目结构如下: 3.在WebContent目录上,单击 ...
- Python+requests 发送简单请求--》获取响应状态--》获取请求响应数据
Python+requests 发送简单请求-->获取响应状态-->获取请求响应数据 1.环境:安装了Python和vscode编译器(Python自带的编译器也ok).fiddler抓包 ...
- Android系列之网络(二)----HTTP请求头与响应头
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- (二)----HTTP请求头与响应头
一.HTTP头引入: 正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度.通常HTTP消息包括:客户机向服务器的请求消息和服务器向客户机的响应消 息.客户端向服务器发送一个请求,请求头 ...
- Android Http请求头与响应头的学习
本节引言: 上节中我们对Android涉及的网络编程进行了了解,也学习了下Http的基本概念,而本节我们 要学习的是Http的请求头与响应头,当然,可以把也可以把这节看作文档,用到的时候来查查 即可! ...
- HTTP请求头与响应头(转载)
欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/400503 ...
- http常见请求头与响应头
1.HTTP常见的请求头 If-Modified-Since:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比.如果时间一致,那么返回304, ...
- ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪
ASP.NET MVC深入浅出(被替换) 一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...
- IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式
IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个 ...
随机推荐
- gameui-for-phaser-js更新到最新版本
Hola Cantk是一个功能强大的游戏引擎,它拥有丰富的GUI控件,配合Hola Studio可以快速开发出游戏的UI界面.Phaser是一个流行而且强大的游戏引擎,但是它的GUI控件很少,而且缺乏 ...
- linux 真·随笔
复制操作 命令行模式下输入 6,9 co 12 复制第6行到第9行之间的内容到第12行后面. vim如何删除文件中所有东西 ggdG :%d 移动光标到指定行的行尾 $:移动光标到行尾 n$:移动到第 ...
- Android开发--Layout元素
1.TF类型 android:layout_alignParentStart="true/flase":贴紧父元素的左边缘 android:layout_alignParentEn ...
- Linux设备驱动中的并发控制
1.并发是指多个执行单元同时.并行的执行.并发的执行单元对共享资源的访问很容易导致竞态. 在 Linux 内核中,主要的竞态发生于如下几种情况: ①对称多处理器(SMP)的多个 CPU ②单CPU内进 ...
- You Only Live Once
从做 PreAngel 以来,每年我都会抽空去美国一两次,主要是在硅谷(湾区)一带见见当地的朋友,他们主要有 VC.创业者.斯坦福和伯克利的学生创业组织负责人.无线科技领域的各种组织机构负责人等,我一 ...
- ExtJs 4 中的MVC应用架构
一.ExtJs 4.x MVC模式的原理与作用 大规模客户端应用通常不好实现不好组织也不好维护,因为功能和人力的不断增加,这些应用的规模很快就会超出掌控能力,ExtJS4带来了一个新的应用架构,不但可 ...
- Python学习路程day11
SqlAlchemy ORM SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据A ...
- 2016 - 1 - 23 xml解析 -- 语法简介
一: XML的概念 1. 一种可拓展标记语言 2. 与json一样,也是一种常用的数据交互格式 3. 一般也叫XML文档---XML Document 二: XML语法 1.一个完整的XML文档一 ...
- PAT (Basic Level) Practise:1028. 人口普查
[题目链接] 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是 ...
- java进程性能分析步骤-超越昨天的自己系列(11)
java进程load过高分析步骤: top 查看java进程情况 top -Hp 查看某个进程的具体线程情况 printf 0x%x 确认哪一个线程占用cpu比较多,拿出来转成16进制 ...