【Django试图与网址003】
Django中网址是写在 urls.py 文件中,用正则表达式对应 views.py 中的一个函数(或者generic类),我们用一个项目来演示。
一,首先,新建一个项目(project), 名称为 mysite
django-admin startproject mysite
备注:
1. 如果 django-admin 不行,请用 django-admin.py
2. 如果是在Linux是用源码安装的,或者用 pip 安装的,也是用 django-admin.py 命令
运行后,如果成功的话, 我们会看到如下的目录样式 (没有成功请参见:https://code.ziqiangxuetang.com/django/django-install.html):
mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
我们会发现执行命令后,新建了一个 mysite 目录,其中还有一个 mysite 目录,这个子目录 mysite 中是一些项目的设置 settings.py 文件,总的urls配置文件 urls.py 以及部署服务器时用到的 wsgi.py 文件, __init__.py 是python包的目录结构必须的,与调用有关。
我们到外层那个 mysite 目录下(不是mysite中的mysite目录)
二, 新建一个应用(app), 名称叫 learn
python manage.py startapp learn # learn 是一个app的名称
我们可以看到mysite中多个一个 learn 文件夹,其中有以下文件。
learn/
├── __init__.py
├── admin.py
├── models.py
├── tests.py
└── views.py
注:Django 1.8.x 以上的,还有一个 migrations 文件夹。Django 1.9.x 还会在 Django 1.8 的基础上多出一个 apps.py 文件。但是这些都与本文无关。
把我们新定义的app加到settings.py中的INSTALL_APPS中
修改 mysite/mysite/settings.py
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', 'learn',
)
备注,这一步是干什么呢? 新建的 app 如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件) , 后面你会学习到它们分别用来干什么.
定义视图函数(访问页面时的内容)
我们在learn这个目录中,把views.py打开,修改其中的源代码,改成下面的
#coding:utf-8
from django.shortcuts import render def index(request):
return HttpResonse(u"开启网站开发之旅!!!")
第一行是声明编码为utf-8,因为我们在代码中用到了中文,如果不声明就报错
第二行引入HttpResponse,它是用来向网页返回内容的,就像Python中的print一样,只不过HttpResponse是把内容显示到网页上
我们定义了一个index()函数,第一个参数必须是request,与网页发来的请求有关,request变量里面包含get或post的内容,用户浏览器,系统等消息在里面(后面会将,先了解一下就可以)
函数返回了一个 HttpResponse 对象,可以经过一些处理,最终显示几个字到网页上。
那问题来了,我们访问什么网址才能看到刚才写的这个函数呢?怎么让网址和函数关联起来呢?
定义视图函数相关的URL(网址) (即规定 访问什么网址对应什么内容)
我们打开mysite/mysite/urls.py这个文件,修改其中的代码:
由于Django版本对urls.py进行一些更改:
Django 1.7.x 及以下的同学可能看到的是这样的:
from django.conf.urls import patterns, include, url from django.contrib import admin
admin.autodiscover() urlpatterns = patterns('',
url(r'^$', 'learn.views.index'), # new
# url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)),
)
Django 1.8.x - Django 2.0 版本的同学,Django 官方鼓励(或说要求)先引入,再使用:
from django.conf.urls import url
from django.contrib import admin
from learn import views as learn_views # new urlpatterns = [
url(r'^$', learn_views.index), # new
url(r'^admin/', admin.site.urls),
]
Django 2.0 版本的同学,urls.py 有比较大的变化(a)(上面 Django 1.8 的在 2.0 中也可以用,是兼容的)
from django.contrib import admin
from django.urls import path
from learn import views as learn_views # new urlpatterns = [
path('', learn_views.index), # new
path('admin/', admin.site.urls),
]
以上都修改并保存后,我们来看一下效果!
在终端上运行python manage.py runserver 我们会看到类似下面的信息
$ python manage.py runserver
Performing system checks... System check identified no issues (0 silenced). You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them. December 14, 2017 - 15:09:47
Django version 2.0, using settings 'mysite2.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
注意:如果是在另一台电脑上访问要用 python manage.py ip:port 的形式,比如监听所有ip:
python manage.py runserver 0.0.0.0:8000 监听机器上所有ip 8000端口,访问时用电脑的ip代替 127.0.0.1
Django中的 urls.py 用的是正则进行匹配的,如果不熟悉,您可以学习正则表达式以及Python正则表达式。
参考链接:
(a). https://docs.djangoproject.com/en/2.0/topics/http/urls/
【Django试图与网址003】的更多相关文章
- 1.2、Django 视图与网址__进阶
Django 视图与网址进阶 1.1.简单使用: 把我们新定义的app加到settings.py中的INSTALL_APPS中 修改 HelloDjango/HelloDjango/settings. ...
- 今天主要推荐一下django学习的网址!
前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了 ...
- Django 视图与网址进阶
一 .在网页上做加减法 1. 采用 /add/?a=4&b=5 这样GET方法进行 1 2 3 django-admin.py startproject zqxt_views cd zqxt_ ...
- Django视图与网址
Django中网址是写在 urls.py 文件中,用正则表达式对应 views.py 中的一个函数(或者generic类),我们用一个项目来演示. 下载本节所有源代码: 学习编程最好的办法就是动手敲代 ...
- 【Django视图与网址进阶004】
一.在网页上做加减法 1. 采用 /add/?a=4&b=5 这样GET方法进行 django-admin.py startproject zqxt_views cd zqxt_views p ...
- django 视图与网址
我是一个新手,内容粗糙,望大家多多指点.在这里我只是总结自身所学. 视图与网址 操作文件:urls.py.views.py urls.py 作用:用于处理前台的链接(如前台访问:127.0.0.1:8 ...
- django学习笔记【003】创建第一个带有model的app
[1]python应用程序要连接mysql有多个驱动程序可供选择: 1.MySQLdb 这个只支持python2.x 所以在这里就不说了: 2.mysqlclient 下载地址 https://pyp ...
- django 自定义分页,网址存储缓存,CBV
1. 通过切片控制分页 自定义分页: from django.shortcuts import render # Create your views here. from app01.models i ...
- django 常用教程网址
第一:url中反向解析教程网址 https://docs.djangoproject.com/zh-hans/2.2/ref/templates/builtins/#url
随机推荐
- Netty入门(一):零基础“HelloWorld”详细图文步骤
因为接下来的项目要用到netty,所以就了解一下这个程序,奈何网上的教程都是稍微有点基础的,所以,就写一篇对于netty零基础的,顺便也记录一下. 先扔几个参考学习的网页: netty 官方API: ...
- AD模块电压采集电路
之前一直没搞明白模拟电压转换电路,不知道应该怎么计算转换电压,最近一个项目中用到几处模拟电压的采集,硬件是由其他同事设计的,转换公式也是他给的,记录一下: 24V电压采集: 公式:Vout = Vin ...
- ashx获取Oracle数据库图片
using System; using System.Collections.Generic; using System.Linq; using System.Web; using DbLib.db; ...
- org.springframework.boot.web.server.WebServerException: Unable to create tempDir. java.io.tmpdir is set to C:\Users\ADMINI~1\AppData\Local\Temp\2\
问题原因:springboot创建临时文件找不到对应的目录 解决办法:1. 重新指定临时文件位置 java -Djava.io.tempdir=D:/tmpdir -jar -my_project. ...
- docker命令汇总
docker命令汇总 序号 类别 简述 命令 功能 说明 1 整体管理 安装 yum install docker-engine centos上安装docker Ubuntu上安装dockerapt- ...
- opencart分类筛选逻辑修改为并且条件
opencart分类筛选模式默认是或的逻辑,满足条件1或条件2都展现出来,如果想要改成既满足条件1又满足条件2要怎么改呢?有一个插件可以实现,FixFilter OC2x,可以修改默认的筛选条件 1. ...
- VS Code mac版全局搜索失效最简单解法
网上百度到的一些说法,说是添加以下命令行 "search.exclude": { "system/": true, "!/system/**/*.ps ...
- vi命令复制粘贴
2.复制粘贴 yy :复制当前行 p :粘贴到光标所在行的下一行
- JAVA时间Date工具类
package com.common.util; import java.text.DateFormat; import java.text.ParseException; import java.t ...
- idea没配置Tomcat容器报错及解决方法
servlet报错,提示没有一个容器,需要一个容器来运行,说明没有tomcat容器. 看看idea的配置有没有配置tomcat? 果然没有配置tomcat容器(正常画红框的地方会出现配置的tomcat ...