django中url映射规则和服务端响应顺序的实现
1、django搜索路径
使用 import 语句时,Python 所查找的系统目录清单。
查看方式:
import sys print sys.path
通常无需关心 Python 搜索路径的设置,Python 和 Django 会在后台自动帮你处理好。
2、url匹配模式
基本结构:
'^需要匹配的url字符串$'
PS:实际上最终完整的url串是http://根路径:端口号/需要匹配的url字符串
系统自动添加的部分'http://根路径:端口号/'
eg:url匹配模式:'^latest_books/$'
最终完整的url字符串:'http://127.0.0.1:8000/latest_books/'
1)^:匹配“子串头”。
eg:
'^latest_books/' 'http://127.0.0.1:8000/latest_books/', 'http://127.0.0.1:8000/latest_books/test1/', 'http://127.0.0.1:8000/latest_books/test2/', 'http://127.0.0.1:8000/latest_books/test1/aaa/'
都会被匹配上。
2)$:匹配“子串结尾”。
eg:
'latest_books/$' 'http://127.0.0.1:8000/latest_books/', 'http://127.0.0.1:8000/updir_1/latest_books/', 'http://127.0.0.1:8000/updir_2/latest_books/'
都会被匹配上。
3)子串末尾是否包含'/'
默认情况下必须添加(django开发者的基本习惯),如果不添加将会出现如下情况:
from django.conf.urls import patterns, url, include urlpatterns = patterns('', (r'^latest_books$', 'django_web_app.views.latest_books'), )
如果子串末尾不想包含'/',可在setting.py中添加设置:APPEND_SLASH=False
但是必须安装了CommonMiddleware才会起作用。
4)手动配置网站“根目录”
在不手动配置网站“根目录”对应“视图函数”的情况下,会出现如下情况:
手动配置“根目录”对应“视图函数”:
a)urls.py
from django.conf.urls import patterns, url, include urlpatterns = patterns('', (r'^$','django_web_app.views.home_page'), (r'^latest_books/$', 'django_web_app.views.latest_books'), )
b)views.py
def home_page(request): return render_to_response('home_page.html')
c)home_page.html
<!DOCTYPE html> <html> <head> <title>my home page</title> </head> <body> <h1>This is home page, welcome !</h1> </body> </html>
运行结果:
附:正则表达式基础
3、服务端响应url请求的执行顺序
1)项目结构
django_web __init__.py settings.py urls.py wsgi.py django_web_app __init__.py admin.py models.py tests.py views.py templates home_page.html latest_books.html manage.py
2)执行顺序
a)启动服务端——python manage.py runserver
获取setting.py文件中的配置,主要包括:
url映射关系文件路径:
ROOT_URLCONF = 'django_web.urls'
页面文件模板路径:
TEMPLATE_DIRS = ( os.path.join(BASE_DIR, 'templates'), )
数据库配置:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_db', 'USER': 'root', 'PASSWORD': 'feng', 'HOST': '127.0.0.1', 'PORT': '3306', } }
b)响应顺序
第一步:浏览器提交请求
http://127.0.0.1:8000/latest_books/
第二步:服务端根据请求的url在urls.py中进行匹配,并找到对应的“视图函数”
第三步:调用对应的“视图函数”
返回一个HttpResponse对象
第四步:django转换HttpResponse对象为一个适合的HTTP response,并返回给页面进行显示
到此这篇关于django中url映射规则和服务端响应顺序的实现的文章就介绍到这了,更多相关django url映射规则和服务端响应顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
运行tensorflow python程序,限制对GPU和CPU的占用操作
今天小编就为大家分享一篇运行tensorflow python程序,限制对GPU和CPU的占用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-02-02Python中使用platform模块获取系统信息的用法教程
这里我们整理了Python中使用platform模块获取系统信息的用法教程,包括操作系统与Python环境以及系统的环境变量等信息的获取方法:2016-07-07python使用xlrd和xlwt读写Excel文件的实例代码
这篇文章主要介绍了python使用xlrd和xlwt读写Excel文件的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-09-09Python使用get_text()方法从大段html中提取文本的实例
今天小编就为大家分享一篇Python使用get_text()方法从大段html中提取文本的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-08-08解决Django中修改js css文件但浏览器无法及时与之改变的问题
今天小编就为大家分享一篇解决Django中修改js css文件但浏览器无法及时与之改变的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-08-08
最新评论