一、视图与路径函数
在Django中,视图函数负责处理用户请求并返回响应。而路径函数则负责将URL映射到相应的视图函数。
# views.py
from django.http import HttpResponse
def hello_world(request):
return HttpResponse("Hello, World!")
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello_world),
]
二、路径转换器
Django提供了几种内置的路径转换器,如int、str、slug等,也允许自定义转换器。
# urls.py
from django.urls import path, register_converter
from . import views, converters
register_converter(converters.MyConverter, 'myconverter')
urlpatterns = [
path('articles//', views.year_archive),
]
三、重定向
使用django.shortcuts中的redirect函数实现重定向。
from django.shortcuts import redirect
def my_view(request):
# ... some code here ...
return redirect('/some/other/url/')
四、模板系统
Django模板系统用于动态生成HTML内容。
五、模板继承
通过使用{% extends %}标签,一个模板可以继承另一个模板的内容。
六、访问静态文件
Django提供了专门的设置和工具来管理和访问静态文件。在settings.py中配置静态文件路径
STATIC_URL = '/static/'
STATICFILES_DIRS = [
BASE_DIR / "static",
]
然后在模板中引用静态文件:
{% load static %}
<'img src="{% static 'images/my_image.png' %}" alt="My image">
七、请求与响应对象
在视图函数中,你可以通过request对象获取用户请求的信息,并构建HttpResponse对象作为响应。
from django.http import HttpResponse
def my_view(request):
if 'query_param' in request.GET:
message = request.GET['query_param']
else:
message = 'No query parameter provided.'
return HttpResponse(message)
八、Cookie与Session
Cookie用于在客户端存储数据,而Session用于在服务器端存储用户会话数据。
# 设置cookie
response = HttpResponse("Cookie set")
response.set_cookie('my_cookie', 'my_value')
# 获取cookie
my_cookie = request.COOKIES.get('my_cookie')
# 设置session
request.session['my_session_key'] = 'my_session_value'
# 获取session
my_session_value = request.session.get('my_session_key')