Django 【进阶篇】

Django 流程

Django url常用匹配语法

几种匹配(在与项目同名的文件夹里的urls.py里写,对应的函数在APP*里的views.py里写)

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r‘^articles/2003/$‘, views.special_case_2003),#匹配文章的年是2003的
    url(r‘^articles/([0-9]{4})/$‘, views.year_archive),
    url(r‘^articles/([0-9]{4})/([0-9]{2})/$‘, views.month_archive),
    url(r‘^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$‘, views.article_detail),
]

Name Groups

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r‘^articles/2003/$‘, views.special_case_2003),
    url(r‘^articles/(?P<year>[0-9]{4})/$‘, views.year_archive),
    url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$‘, views.month_archive),
    url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$‘, views.article_detail),
]

上面url里面的匹配和正则表达式是一样的,根据我们自己的需要去选择相应的正则表达式

include在url中的用途:项目里面的每个应用即app*里面都有自己的url

注意:url里面不能写动词,虽然不出错,但是不规范

from django.conf.urls import include, url

urlpatterns = [
    # ... snip ...
    url(r‘^community/‘, include(‘django_website.aggregator.urls‘)),
    url(r‘^contact/‘, include(‘django_website.contact.urls‘)),
    # ... snip ...
]

在url后面加上了字典,它的用途是:

如果在全局的url中加上字典的话,那么在每一个视图里都会加上该字典里的类型作为参数

注意:是用户对象,而不是用户名,这里是对一堆的信息封装成为对象

GET和POST请求方法:

GET和POST请求方法:

GET请求的东西是明文显示的   POST请求的东西是非明文的  PostMan插件(只能用于chrone浏览器)

Django Template渲染:

字符串 字典 列表,

时间: 2024-08-29 05:05:38

Django 【进阶篇】的相关文章

python Django 进阶篇

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1,基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE 创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver 0.0.0.0 python manage.py

Python之路【第十七篇】Django进阶篇

规范 确立规范的好处: 代码可读性高 方便代码的定位极其查找 为以后代码扩容带来便利 场景: 在多个APP的场景下,单个app的URL函数功能较多的时候,我们可以通过以下方法来解决. 把Views写成模块的方式并且为不同的功能进行不同的划分,并且在Templates中使用同样规则,如下图: 我根据不同的html然后创建不同的函数,命名和templates模板目录一样这样非常方便找到,这个页面中的函数在哪里. 设置路由的时候就得导入相应的函数(下面的函数是在app01中的url,通过object的

Web框架django进阶篇

分页 一.Django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger L = [] for i in range(999): L.append(i) # 模拟数据库 生成数据 def index(request): current_page = request.GET.get('page') # 通过get请求得到当前

Python之路【第十六篇续】Django进阶篇

Django请求生命周期 首先:对于所有的web框架来说本质就是一个socket服务端,浏览器是socket客户端 路由系统 在Django的urls中我们可以根据一个URL对应一个函数名来定义路由规则如下: from cmdb import views urlpatterns = [ url(r'^login/$', views.login), url(r'^index/$', views.index), url(r'^lists/$', views.lists), url(r'^add/$'

Django进阶篇(二)

中间件 解析 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后, django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量, 其中每一个元素就是一个中间件, MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.

Django 进阶篇二

规范 确立规范的好处: 代码可读性高 方便代码的定位极其查找 为以后代码扩容带来便利 场景: 在多个APP的场景下,单个app的URL函数功能较多的时候,我们可以通过以下方法来解决. 把Views写成模块的方式并且为不同的功能进行不同的划分,并且在Templates中使用同样规则,如下图: 我根据不同的html然后创建不同的函数,命名和templates模板目录一样这样非常方便找到,这个页面中的函数在哪里.    设置路由的时候就得导入相应的函数(下面的函数是在app01中的url,通过obje

Django进阶篇

一.Django框架 1.MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中.具有耦合性低.重用性高.生命周期成本低等优点. 2.Django的MTV框

Django 进阶篇

>>> models.UserInfo.objects.create(username='jason',pwd='56789',user_type_id='1') <UserInfo: UserInfo object> >>> models.UserInfo.objects.values() <QuerySet [{'pwd': '56789', 'username': 'jason', 'id': 1, 'user_type_id': 1}]>

【Python之路Day18】Python Web框架之 Django 进阶操作

Django 进阶篇 一.django的Model基本操作和增.删.改.查. 注:默认使用了sqlite3数据库 如果想使用其他数据库,请在settings里修改 1.创建数据库: 1.创建model类 在app01(或者你的app下)下models.py写入以下内容: from django.db import models # Create your models here. # 这个类是用来生成数据库表的,这个类必须集成models.Model class UserInfo(models.

Python之路【第十七篇】:Django【进阶篇 】

Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost')