码迷,mamicode.com
首页 > 数据库 > 详细

2018.7.7-数据库配置方面及首页方面的问题

时间:2018-07-07 20:50:49      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:级联   gif   完成后   说明   pytho   password   backend   不能   标签   

数据库方面的问题

今天遇到的第一个问题就是数据库配置的问题,首先贴上MySQL数据库的通用配置:

技术分享图片
 1 DATABASES = {
 2     default: {
 3     ENGINE: django.db.backends.mysql,
 4     NAME:dbname,
 5     USER: root,
 6     PASSWORD: xxx,
 7     HOST: ‘‘,
 8     PORT: ‘‘,
 9     }
10 }
setting文件配置摘要
技术分享图片
1 # 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替
2   
3 # 如下设置放置的与project同名的配置的 __init__.py文件中
4   
5 import pymysql
6 pymysql.install_as_MySQLdb() 
_init_文件配置摘要

根据这个配置就可使用MySQL数据库来完成后面的工作。

但是,当我在创建数据库的时候,系统报了如下的错误

技术分享图片

主要错误的代码如下:

1 class Tag(models.Model):
2     nid = models.AutoField(primary_key=True)
3     title = models.CharField(verbose_name=标签名称, max_length=32)
4     blog = models.ForeignKey(verbose_name=所属博客, to=Blog, to_field=nid)    #错误行

这个错误的主要原因是:

在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:

TypeError: __init__() missing 1 required positional argument: on_delete

举例说明:

user=models.OneToOneField(User)
owner=models.ForeignKey(UserProfile)

需要改成:

user=models.OneToOneField(User,on_delete=models.CASCADE) 

owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) 

参数说明:
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
CASCADE:此值设置,是级联删除。
PROTECT:此值设置,是会报完整性错误。
SET_NULL:此值设置,会把外键设置为null,前提是允许为null。
SET_DEFAULT:此值设置,会把设置为外键的默认值。
SET():此值设置,会调用外面的值,可以是一个函数。
一般情况下使用CASCADE就可以了。

URL路由的问题

使用path来配置URL路由的时候,遇到了正则表达式不能使用的问题,查了一下,原来是Django 2.0的新改动,如果需要使用正则表达式可以引入

from django.urls import re_path

具体可以参照这位大神的博客

详细了解改动内容,可以参照官方文档

2018.7.7-数据库配置方面及首页方面的问题

标签:级联   gif   完成后   说明   pytho   password   backend   不能   标签   

原文地址:https://www.cnblogs.com/yu-jie/p/9276752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!