Django框架中的路由系统 django知识点回顾总结补充

鳄鱼君

发表文章数:642

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » Django框架中的路由系统 django知识点回顾总结补充

Django框架的路由系统

Django框架实现用户登录这篇文章中,相比你有很多不理解的地方,这篇文章我们来详细介绍一下Django程序的执行顺序。

在前面的几篇文章中,我们每增添一个URL就需要在urls.py中加入相应的url路径和对应处理的函数:

from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/', views.login),
    path('index/', views.index),
]

django程序运行,访问相应的URL,django就会去views.py中寻找对应的函数,函数又返回对应的模板html,django拿到之后会进行处理,处理它自身能够识别的字符,就像我们呢前面添加的for循环一样,django能够识别然后展示在html页面中。

urls.py就相当于路由系统,一个路标,views.py中存在的就是视图函数,在函数内部我们可以去数据库中取数据,django会把数据嵌套在html页面进行处理,有时候我们呢会在html页面中添加一些django可以识别的特殊语法,然后展现给我们,这就是django程序执行的顺序,我们需要牢牢记下它!

Django框架知识点总结

我们对前面的几篇文章中的知识点进行整理:

1.创建Django工程
django-admin startproject 工程名
2.创建APP
python manage.py startapp myapp
3.配置静态文件
project.settings.py中
STATIC_URL = '/static/'
STATICFILES_DIRS=(
    os.path.join(BASE_DIR,'static'),
)
4.配置模板路径
project.settings.py中
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]  #当前目录加上templates
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
5.处理csrf 报错
(1.) 注释setting.py中的
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
(2.)在views.py中导入
from django.views.decorators.csrf import csrf_exempt
在模板函数上添加装饰器@csrf_exempt
6.定义路由规则
url.py中
   path('index/', views.函数名)  注意路径/
7.定义视图函数
APP中的views.py
def func(request):
    request.method    GET/POST
    request.POST.get(键,None)  取POST请求的键值  URL表单
    request.GET.get(键,None)  取GET请求的键值  URL携带参数 url?name=123&age=123  

    return HttpResponse("字符串")  返回字符串
    return render(request,"templates模板路径") 
    return redirect("/URL路径")

Djanog框架中的模板渲染

前面讲过django会对我们的模板页面index.html进行渲染处理:

USER_LIST=[
    {'user':'鳄鱼君','email':'123456@qq.com',}
]
def index(request):
    return render(request,'index.html',{'username':"鳄鱼君"},{'USER_LIST':USER_LIST}) 
index.html
<div>{{ username }}</div>  #替换字符串并返回给用户
{% for i in USER_LIST %}  {# for循环开始 #}
<tr><td>{{ i.user }}</td><td>{{i.email}}</td></tr>  #字典的取值方式
#如果USER_LIST是个列表 可根据索引取值 i.0  i.1 ...
{% endfor %}  {# for循环结束 #}

if判断

{% if age %} #语句开始
    <p>年龄</p>
    {% if age > 18 %}  #嵌套
        <p>年龄</p>
    {% else %}
        <p>年龄</p>
    {% endif %}
{% else %}
    <p>年龄</p>
{% endif %}  #语句结束


for循环和if结合使用...

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Django框架中的路由系统 django知识点回顾总结补充》 发布于2020-04-07

分享到:
赞(2) 赏杯咖啡

评论 抢沙发

3 + 3 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册