django2 mysql配置_2 Django连接MySQL及路由层的简单路由配置

一、Django(1.11.9)连接MySQL

1、如果项目使用sqlite,不需要额外配置,直接操作即可。

2、Django默认情况连接MySQL用的驱动是mysqldb模块,python3.x以后用的都是pymysql。

3、使用MySQL,需要配置如下:

配置文件中:settings.py

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'day62',

'HOST': '127.0.0.1',

'PORT': 3306,

'USER': 'root',

'PASSWORD':'123'

}

}

在app文件夹中的__init__.py文件夹中写入:

import pymysql

pymysql.install_as_MySQLdb()

首先手动创建一个数据库,在models.py中新建类,写字段

执行python3 manage.py makemigrations和python3 manage.py migrate即可在已经创建的数据库中添加相应的表。

二、路由层的简单路由配置

1、路由参数

第一个参数是正则表达式

第二个参数是视图函数内存地址

第三个参数是一个字典,{"name":"xiaoming","age":18},给视图函数传递默认值

第四个参数name,是当前路由的别名,用于反向解析

注意点:

1、访问根路径,如何配置路由

url(r'^$',视图函数内存地址)

2、在路由中配置多个相同路由只会执行第一个

3、当两个路由为

url(r'^login', views.home),

url(r'^login2', views.home),

时,永远不会匹配到第二个

2、路由层的APPEND_SLASH

当url配置中正则部分最后没加上/时,Django会通过django.middleware.common.CommonMiddleware这个中间件自动补齐,如在访问http://127.0.0.1:8000/login这个地址时,浏览器会发两次请求,重定向一次,而在settings.py中加上APPEND_SLASH=False时,会去除这种特性。

三、无名分组和有名分组

1、无名分组,把分组分出来的值,当作位置参数传递给视图函数

url(r'^login/([0-9]{4})/([0-9{2}])',view.login),

2、有名分组,把分组出来的值,当作关键字参数传递给视图函数

url分组的作用:可以从url中解析出参数,传递给视图函数使用

四、路由分发

1、有一个总路径,根路由,总路由负责做分发

2、每个app有自己的路由和视图函数的对应关系

3、使用:

在根路由中配置

url(r'^app01/',include('app01.urls')),

在不同app中新建urls.py

urlpatterns = [

url(r'login/',views.login),

url(r'home/',views.home),

]

五、反向解析和名称空间

1、反向解析

通过路由的别名,解析出路由的地址

用在视图函数中:

url = reverse('home') # home就是路由的别名

模版文件中使用

{% url 'bieming' %}

作用:动态根据别名获得路径,一旦路径改变,不需要改其他代码

2、名称空间

路由做反向解析时,有同名路由,出现问题

在做路由分发时,给每个app的路径设置一个名称空间

使用步骤

1 在总路由中设置

url(r'^app01',include('app01.urls','名称空间的名字') ),

2 用在视图函数中:

url=reverse('名称空间的名字:home') # home就是路由的别名

print(url)

3 模板文件中使用

{% url '名称空间的名字:meinv' %}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值