一、修改配置

数据库

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'dbname',
'USER': 'root',
'PASSWORD': 'xxx',
'HOST': '',
'PORT': '',
}
} # 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替 # 如下设置放置的与project同名的配置的 __init__.py文件,或settings 中, 目的就是执行一遍pymysql.install...... import pymysql
pymysql.install_as_MySQLdb() 

模版及静态文件:

TEMPLATE_DIRS = [
os.path.join(BASE_DIR, 'templates'),
] STATICFILES_DIRS = (
(os.path.join(BASE_DIR, 'static'),
)
二、路由系统

- 单一路由对应:
path('home/', views.index)

  • 内置正则路由:

    path('articles/<int: pid>/', views.article)

    article函数内:

    def article(request, *args, **kwargs):

      #kwargs 中存储了{'pid': 17}

      return render(request, 'aritcle.html')

  • 为路由映射设置名称

    path('home/', views.home, name='home'),

    path('article/int:pid', views.index, name='article'),

    设置名称之后,可以在不同的地方调用,如:

     

    模板中使用生成URL {% url 'home' 2017 %}

    函数中使用生成URL reverse('article', args=(2017,)) from django.urls import reverse

    Model中使用获取URL 自定义get_absolute_url() 方法

2.2 一二级路由分配

使用django.urls下的 include方法进行二级路由分配

一级路由:

project同名的urls.py文件内:

from django.urls import path
from django.urls import include urlpatterns = [
path('blog/', include('blog.urls')),
]

二级路由:

app下创建urls.py

from django.urls import path
from blog import views urlpatterns = [
path('index/', views.index),
]

name 参数与路由反解:

经常在视图函数中需要拿到前来的路由关系,除了:

request.path_info拿到全路径只为,

还能使用django.urls 下的 reverse(name)函数进行反解url

只需要在urls.py文件中的路由关系映射后面加上name参数,并给一个值,让reverse拿着这个值反解

#urls.py 内

urlpatterns = [
path('article/', views.article, name='article'),
] #views.py文件内 from django.urls import reverse def article(request):
url_article = reverse('article')
return render(request, 'article.html', {'url': url_article})

命名空间:

#project.urls.py

from django.conf.urls import url,include

urlpatterns = [
path('a/', include('blog.urls', namespace='author-polls')),
path('b/', include('blog.urls', namespace='publisher-polls')),
] blog.urls.py from django.conf.urls import path
from blogimport views app_name = 'blog'
urlpatterns = [
path('article/<int:pid>/$', views.detail, name='detail')
] 以上定义带命名空间的url之后,使用name生成URL时候,应该如下: v = reverse('author-polls:detail', kwargs={'pid':11})
{% url 'publisher-polls:detail' pid=12 %}

django 路由系统,数据库操作的更多相关文章

  1. 【python】-- Django路由系统(网址关系映射)、视图、模板

    Django路由系统(网址关系映射).视图.模板 一.路由系统(网址关系映射) 1.单一路由对应: 一个url对应一个视图函数(类) urls.py: url(r'^test', views.test ...

  2. Django路由系统

    django路由系统 简而言之,django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里的关系条目,去查找到与请求对应的处理方法,从 ...

  3. Django 路由系统

    Django 路由系统 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 参数说 ...

  4. Python学习---Django路由系统【all】

    Django URL (路由系统) Django URL (路由系统): URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映 ...

  5. 关于Django中的数据库操作API之distinct去重的一个误传

    转载自http://www.360doc.com/content/18/0731/18/58287567_774731201.shtml django提供的数据库操作API中的distinct()函数 ...

  6. Django路由系统-分组命名匹配

    Django路由系统 分组命名匹配 ​ 在上述基本配置示例中,使用了简单的正则表达式分组匹配来捕获URL中的值并以位置参数的形式传递给视图,例如url(r'^articles/([0-9]{4})/( ...

  7. Django路由系统-URLconf配置、正则表达式简述

    Django路由系统 1.11版本官方文档 ​ URL配置就像是Django项目的目录,它的本质是URL与URL调用的函数之间的映射表,Django会根据URL配置,在遇到一个URL时,就去执行相应的 ...

  8. Django【第5篇】:Django之ORM数据库操作

    django之ORM数据库操作 一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录-------- ...

  9. django上课笔记1-目录介绍-路由系统-ORM操作

    一.Django目录介绍 django-admin startproject mysite # 创建名为mysite的项目 cd mysite # 切换到该目录下 python manage.py s ...

随机推荐

  1. Windows 系统下 mysql workbench 的安装及环境配置

    1.MySQL的官网地址:https://www.mysql.com/ 2,选择DOWNLOADS 3.选择community 再MySQL workbench 4.安装MySQL workbench ...

  2. 4.10Python数据处理篇之Matplotlib系列(十)---文本的显示

    目录 目录 前言 (一)中文显示 ==1.全局的设置== ==2.局部的设置== (二)文本显示 目录 前言 今天我们来学习一下文本的显示 (一)中文显示 ==1.全局的设置== (1)说明: 在ma ...

  3. mysql统计一年12月的数据

    效果图: select end) as 一月份, end) as 二月份, end) as 三月份, end) as 四月份, end) as 五月份, end) as 六月份, end) as 七月 ...

  4. JavaScript闭包理解【关键字:普通函数、变量访问作用域、闭包、解决获取元素标签索引】

        一.闭包(Closure)模糊概述 之前总觉得闭包(Closure)很抽象而且难理解,百度一下"闭包"名词,百度的解释是:“闭包是指可以包含自由(未绑定到特定对象)变量的代 ...

  5. j旧学习

    多态的动态绑定: 签名 方法名和参数列表  不同参数叫重载,覆盖父类签名叫覆盖 类加 final不可继承 方法加final不可覆盖 强制类型转换  (类型)对象 抽象类 只要有一个抽象方法就是抽象类, ...

  6. keepalived 安装篇-官方文档

    官方安装文档 http://www.keepalived.org/doc/installing_keepalived.html Installing Keepalived Install keepal ...

  7. node基础—global对象(全局对象)

    global对象的__filename属性和__dirname属性 __filename属性:返回当前执行的文件的文件路径,该路径是经过解析后的绝对路径,在模块中,该路径是模块文件的路径,此属性并非全 ...

  8. python subprocess.Popen 控制台输出 实时监控百度网ping值

    import subprocess file_out = subprocess.Popen('ping www.baidu.com', shell=True, stdout=subprocess.PI ...

  9. python装饰器(备忘)

    # 装饰器decorator def deco1(fun): def PRINT(*args,**kwargs): print('------deco1------') fun(*args,**kwa ...

  10. day23 Pythonpython 本文re模块

    re模块用于对python的正则表达式的操作. 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配 ...