目录

创建项目

在命令行中,使用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)的更多相关文章

  1. Chapter03 第一节 简单变量

    3.1 简单变量 定义一个变量后,系统根据变量类型的不同在内存的不同区域分配一个空间,将值复制到内存中,然后用户通过变量名访问这个空间. 3.1.1 变量名 变量名的命名规则: 只能使用字母.数字.下 ...

  2. 第一节 简单的jsp实例

    1.打开Eclipse,依次点击“File” .“New” .“Other” ,选择生成动态Web项目. 2.输入项目名字,点击Finish 生成项目结构如下: 3.在WebContent目录上,单击 ...

  3. Python+requests 发送简单请求--》获取响应状态--》获取请求响应数据

    Python+requests 发送简单请求-->获取响应状态-->获取请求响应数据 1.环境:安装了Python和vscode编译器(Python自带的编译器也ok).fiddler抓包 ...

  4. Android系列之网络(二)----HTTP请求头与响应头

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  5. (二)----HTTP请求头与响应头

    一.HTTP头引入: 正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度.通常HTTP消息包括:客户机向服务器的请求消息和服务器向客户机的响应消 息.客户端向服务器发送一个请求,请求头 ...

  6. Android Http请求头与响应头的学习

    本节引言: 上节中我们对Android涉及的网络编程进行了了解,也学习了下Http的基本概念,而本节我们 要学习的是Http的请求头与响应头,当然,可以把也可以把这节看作文档,用到的时候来查查 即可! ...

  7. HTTP请求头与响应头(转载)

    欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/400503 ...

  8. http常见请求头与响应头

    1.HTTP常见的请求头 If-Modified-Since:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比.如果时间一致,那么返回304, ...

  9. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  10. IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式

    IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个 ...

随机推荐

  1. [讨论] win7封装时如何直接开通局域网共享

    ekincheng 发表于 2016-10-31 20:17:54 https://www.itsk.com/thread-371838-1-5.html Win7封装时不能像XP那样直接开启局域网共 ...

  2. 0020 Linux 文件操作命令

    1. 创建文件 touch 文件名 2. 删除文件 rm 文件名 3. 复制文件 cp 源文件 目录 4.剪切文件 mv 源文件 目标文件 5.重命名文件 mv 源文件名 新文件名 6.改变文件权限 ...

  3. Asp.net图片文件上传

    对课本上的代码进行了一点的优化 1.获取文件的名称和文件的后缀名 引用了System.IO, 用Path.GetFileNamehe()取得文件名和Path.GetExtension获取文件的后缀 2 ...

  4. 制作linux内核安装包

    实验基于Centos 6.2 升级linux内核 直接在一个有编译环境的设备上,编译升级内核很简单. make menuconfig 或者 拷贝现有系统的.config文件 修改.config文件  ...

  5. C中的Float分析

    C/C++中, 浮点数,float以及 double 在内存中是怎样存储的? 假如,我有32-bit 8bit 8bit 8bit 0 0 0 0 0 1 1 1 1 对于整形int,我们可以很快得出 ...

  6. python jar

    jpype不好用 pyjnius pip install jnius pip install cython

  7. git中通过实际操作来了解常用命令

    基本的6个命令 常用的就下面6个命令,但是详细的可能有上百个命令. 还需要特别了解git的几个名词,workspace:工作区,Index/Stage:暂存区,Respository:本地仓库,Rem ...

  8. log4net.NoSql +ElasticSearch 实现日志记录

    前言: 前两天在查找如何扩展log4net的日志格式时找到一个开源项目Log4net.NoSql,它通过扩展Appender实现了把日志输出到ElasticSearch里面.顺藤摸瓜,发现涉及的项目还 ...

  9. Appcan跨域交互

    案例1,sina微博登录,没有插件,因此采用web方式,我首先打开https://api.weibo.com/oauth2/authorize--,然后我想增加 一个取消按钮: 1 首先打开sina ...

  10. Python的平凡之路(8)

    (本文是对平凡之路(7)的补充等) 一.动态导入模块 import importlib __import__('import_lib.metaclass') #这是解释器自己内部用的 #importl ...