Django2创建项目及连接数据库

官方文档:https://docs.djangoproject.com/zh-hans/2.1/

创建项目

在这里插入图片描述

创建路由分发

主路由urls.py配置:

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('users/',include('users.urls'))
]

复制一份放到users目录下面,进行分路由urls.py配置:

from django.urls import path,include
from users import views

urlpatterns = [
    path('user/',views.home)
]

users目录views.py配置:

from django.shortcuts import render,HttpResponse,redirect
def home(request):
    return HttpResponse('111111111111111111111111')

运行服务,浏览器监测:
在这里插入图片描述

命令行创建新的APP

python manage.py startapp courses

在这里插入图片描述
创建成功之后,将urls.py复制进去,创建出自己的子路由
当然,还需要去settings.py中进行配置
在这里插入图片描述

打包管理

根据上面的步骤生成的目录为下面这样,可以看到子模块与主模块平行存在,不利于管理,我们可以创建一个包,将子模块放入包中。
在这里插入图片描述
新建包
在这里插入图片描述将子模块移入进去,当然,这样一来,之前的路由配置就会出错,所以我们还需要进行下面的操作。
右击创建的包,进行下面处理,使包中的路径置于root下,这样我们就可以不用修改了。
在这里插入图片描述

连接mysql数据库

数据库中新建库
在这里插入图片描述下载pymysql,在__init__.py中引入

import pymysql
pymysql.install_as_MySQLdb()

settings.py中配置
在这里插入图片描述
各个子模块下,在modules.py模型中进行表的配置
模型类中定义属性的语法格式: 属性名 = models.字段类型(选项)
字段类型:
在这里插入图片描述
选项:
在这里插入图片描述
如在users下

from django.db import models
from django.contrib.auth.models import AbstractUser
from datetime import datetime
# Create your models here.
class UserProfile(AbstractUser):
    image = models.ImageField(upload_to='user/',max_length=200,verbose_name="用户头像",null=True,blank=True)
    nick_name = models.CharField(max_length=20,verbose_name="用户昵称",null=True,blank=True)
    birthday = models.DateTimeField(verbose_name="用户生日",null=True,blank=True)
    love_num = models.IntegerField(default=0,verbose_name="收藏数")
    detail = models.TextField(verbose_name="机构详情")
    cityinfo = models.ForeignKey(CityInfo,on_delete=models.CASCADE,verbose_name="所在城市")
    love_status = models.BooleanField(default=False,verbose_name="收藏状态")

    def __str__(self):
        return self.username

    class Meta:
        verbose_name = '用户信息'
        verbose_name_plural = verbose_name

模型类建好之后,进行迁移和同步,生成对应的表

根据模型类生成迁移文件
python manage.py makemigrations
执行迁移生成表
python manage.py migrate

在模型类之间相互引用的时候,执行迁移与同步会出现下面的问题
问题1:

File "C:\Users\Administrator\Desktop\自己资料总结\python\python实战项目\eduproject\apps\operations\models.py", lin
    from users.models import  UserProfile
ModuleNotFoundError: No module named 'users'

需要在settings.py中进行配置
在这里插入图片描述
问题2:

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

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

django.db.migrations.exceptions.InconsistentMigrationHistory: 
Migration admin.0001_initial is applied before its dependency users.0001_initial on database 'default'.

出现这个问题只需先删除对应库中的所有表,重新执行迁移即可。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值