python之路_day107_django中url反向解析及数据库连接

一、url反向解析

  在正式介绍反向解析之前,我们首先介绍一下在django中的url参数,如下为我们url实例,其中name参数就是其别名,也就是我们接下来讲解的反向解析中所依靠的参数。

1、模板中反向解析

  在我们的前端页面上,如form表单,我们通常会指定提交的路径,但是以往我们都是将路径写死,这显然不是很合理,因为当url中的路径需要改变的时候,我们又需要逐一去更改页面。这样不合理。所以我们就要用到url的别名进行反向解析。

语法:
{% url ‘url的别名‘ %}

  实例如下:

2、视图中反向解析

  在我们的视图中,如redirect,我们也会需要用到指定url情况,将路径写死很显然也不是很合理,我们也可通过反向解析的方式获得相应的路径,具体语法如下:

语法:
from django.core.urlresolvers import reverse
reverse(‘url别名‘)

  实例如下:

二、url名称空间

  假如,我们有两个app应用,通过路由分发,在两个app的urls文件中假如两个app中的url别名相同,则通过反向解析得到的结果有可能出现混乱,即会查找到另一个app中url别名对应的url路径,这显然不是我们想要的,造成的这样的原因是django在查找url别名是会从全局中查找。解决办法是在路由分发时指定名称空间参数namespace,如下所示:

  如上设置以后,在app应用按照如下方式方向解析时就不会出现问题:

三、django连接数据库

  我们知道在django中有通过数据迁移我们便有默认的sqlite数据库供我们使用,这是django自带的数据库,其实并不能满足我们的实际生产中的使用,这是因为在django的setting文件中进行如下的配置:

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
        ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
    }
}

  如果我们不想使用默认数据库,则我们可以重新在setting文件中配置此参数,设置成我们自己想要连接的数据库,如下为mysql数据库的配置方式,注意一点,django中不可以实现建立数据库,所以数据库需要我们在cmd中自行建好。

DATABASES = {

    ‘default‘: {

        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        ‘NAME‘: ‘day107‘,                                     #你的数据库名称
        ‘USER‘: ‘root‘,                                       #你的数据库用户名
        ‘PASSWORD‘: ‘‘,                                       #你的数据库密码
        ‘HOST‘: ‘‘,                                           #你的数据库主机,留空默认为localhost
        ‘PORT‘: ‘3306‘,                                       #你的数据库端口

    }
}

  除此,配置完上述以后,也不能完成数据库的迁移,主要原因和解决办法如下。如下更换跟换数据库的接口代码需要放在django项目或者应用的int.py 文件,保证在项目启动的时候完成自动加载。

原文地址:https://www.cnblogs.com/seven-007/p/8350270.html

时间: 2024-08-29 01:27:54

python之路_day107_django中url反向解析及数据库连接的相关文章

Django之url反向解析

在urls.py文件中,在进行url映射时,为请求的url命个名,以便在模板页面或者views.py视图中可以进行反向解析,同时在修改了url映射的请求路径,名称不变的情况下,不再修改模板页面或者视图中的数据,项目不受影响正常执行!url标签中使用模板变量和普通标签参数一样,空格隔开,{{ % url   别名   %}}即可. urls.py文件设置: url(r'^url_reverse/', views.url_reverse,name="view_reverse"), url(

python 之 Django框架(路由系统、include、命名URL和URL反向解析、命名空间模式)

12.36 Django的路由系统 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] ? 正则表达式: 一个正则表达式字符串 views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 参数: 可选的要传递给视图函数的默认参数(字典形式) 别名: 一个可选的name参数 12.361 路由正则表达式 from django.conf.urls imp

django URL反向解析和命名空间

一.反向解析URL 在实际的Django项目中,经常需要获取某条URL,为生成的内容配置URL链接. 比如,我要在页面上展示一列文章列表,每个条目都是个超级链接,点击就进入该文章的详细页面. 现在我们的urlconf是这么配置的:^post/(?P<id>\d+). 在前端中,这就需要为HTML的<a>标签的href属性提供一个诸如http://www.xxx.com/post/3的值.其中的域名部分,Django会帮你自动添加无须关心,我们关注的是post/3. 此时,一定不能硬

python之路_day70_django中cookie介绍

一.django模板系统 1.母板 为其他子模板文件所共有的内容文件,各子模板的不同部分通过模板语言占位.注意:我们通常会在母板中定义页面专用的CSS块和JS块,方便子页面替换,如下例: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" con

python web开发-flask中url带斜线/和不带斜线/的区别详解

flask中带斜线和不带斜线的url 通过flask进行路由配置的时候,有一个细节,就是同样的url,带上"/"和不带"/"有什么区别. 举例说明: 比如有个url,名字为"/url" 先同时定义两种url,一种带"/",一种不带"/",如下代码: @app.route("/url")def urlWithOut():return "url with out /" @

Python之路66-Django中的Cookie和Session

目录 一.Cookie 二.Session 一.Cookie 1.获取Cookie  request.COOKIES["key"] request.get_signed_cookie(key, default=RAISE_ERROR, s, max_age=None) # 参数 # default:默认值 # salt:加密盐 # max_age:后台控制过期时间 2.设置Cookie rep = HttpResponse(...) 或 rep = render(request, ..

python之路_day78_django中ajax应用

一.Ajax介绍 Ajax(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML".即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML). 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求: 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求. Ajax除了异步的特点外,还有一个就是:浏览器页面局部刷新:(这一特点给用户的感

python爬虫之真实世界中的网页解析

Request和Response Request是我们平常浏览网页,向网站所在的服务器发起请求,而服务器收到请求后,返回给我们的回应就是Response,这种行为就称为HTTP协议,也就是客户端(浏览器)和服务器的对话方式. Request方法 在HTTP1.1的背景下,向服务器请求的方法有get,post,head,put,options,connect,trace,delete,其中,get(能爬取90%以上的网页)和post是最常用的两种方法 Response 原文地址:https://w

15、url反向解析和别名及命名空间

原文地址:https://blog.51cto.com/yht1990/2406962