Files
notes_estom/Python/Django/Django-view.md
yinkanglong_lab a5132d34cc python
2021-03-09 20:51:22 +08:00

70 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Django工程创建
**django-admin.py startproject HelloWorld**
创建Django项目。其目录结构为\|-- HelloWorld //项目的容器内有view控制中心\|
\|-- \__init_\_.py //包声明文件\| \|-- settings.py //该Django项目的配置文件\|
\|-- urls.py //Django项目的URL声明\| \`-- wsgi.py
//该Django项目的WSGI兼容的web服务器入口python内置服务器程序 \`-- manage.py
//与项目相关的命令行工具实现与Django的交互。
**python manage.py runserver 0.0.0.0:8000**
启动服务器,并将该项目部署到服务器当中。
**HelloWorld/view.py**
from django.http import HttpResponsedef hello(request): return
HttpResponse("Hello world ! ")
view文件的标准函数。负责接收request并将request进行处理返回response提供给用户。
**Helloworld/urls.py**
from django.conf.urls import urlfrom . import viewurlpatterns = [ url(r'\^\$',
view.hello),]
urls文件的标准格式哦调羹说配置URL和view方法之间的对应关系建立URL和view方法之间的映射。其中urlpatterns变量的配置函数如下
url(regex, view, kwargs, name)
regex: 正则表达式匹配相应的url
view: view方法用来吹与正则表达式匹配的url
kwargsview使用的字典类型的参数。
name用来反向获取URL
**关于url name的详细说明。**
- 为了在视图渲染过程中获取真正的请求网址。大致理解了一些url可以通过正则表达式匹配到urlpattern中的一个函数但是有的时候这个网址会变化导致原来的匹配不再生效。那么就提供了一种通过名字来匹配具体url的方式。当网址变化时名字已久能帮助原来的url定位到新的网址。
- 在原网址链接的地方使用名字+参数的方式可以自动渲染成最新的url格式。
原来的匹配项
url(r'\^add/(\\d+)/(\\d+)/\$', calc\_views.add2, name**=**'add2'),
现在的匹配项
url(r'\^new_add/(\\d+)/(\\d+)/\$', calc\_views.add2, name**=**'add2'),
原来的链接将不能访问
\<**a** href="/add/4/5/"\>link\</**a**\>
但是通过名字的链接会自动渲染成当前的url匹配模式
\<**a** href="{% url 'add2' 4 5 %}"\>link\</**a**\>
渲染成→\<**a** href="/add/4/5/"\>link\</**a**\>
渲染成→\<**a** href="/new_add/4/5/"\>link\</**a**\>
具体渲染的方式为下面的方式会生成对应的urlpattern。
**from** django.core.urlresolvers **import** reverse
reverse('add2', args**=**(a, b))