美文网首页
django链接数据库(继入门文章)

django链接数据库(继入门文章)

作者: 想旅游的程序员 | 来源:发表于2019-06-16 10:01 被阅读0次

1、在根目录下配置好urls以后,需要进入创建的第一个应用,即执行

django-admin startapp blog

进入创建的blog文件夹内,创建一个urls文件,在文件下配置url

例如:配置路径,分别对应views下的不同模块

from django.conf.urls import url

from . import views

urlpatterns = [

        url(r'^$',views.index,name="index"),

        url(r'^login/$',views.login,name="login"),

        url(r'^register/$',views.registser,name="register"),

]

2、在views下对功能进行实现

from django.http import HttpResponse

def index(request):

    print("这里是什么?",request)

    return HttpResponse("""<h1>博客首页面</h1><a href="/"></a>""")

连接MySQL数据库

1、首先在setting文件中进行数据库的配置

# 需要导入pymysql库

import pymysql

# 因为django底层使用的是mysqldb模块,需要将pymysql转为mysqldb

pymysql.install_as_MySQLdb()

DATABASES = {

    'default': {

        # 'ENGINE': 'django.db.backends.sqlite3',

        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

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

        'NAME':'python_django',

        'USER':'root',

        'PASSWORD':'root',

        'HOST':'localhost',

        'PORT':3306,

        'CHARSET':'utf8',

        }

}

2、在models模块建立数据模型

# 导入库

from django.db import models

class Users(models.Model):

        id = models.AutoField(primary_key=True)

        username = models.CharField(max_length=100,unique=True,verbose_name="用户名")

        age = models.IntegerField(max_length=10,default=18,verbose_name="年龄")

        # 昵称允许为空,null和blank都要设置

        nickname = models.CharField(max_length=255,null=True,blank=True,verbose_name="昵称")

        password = models.CharField(max_length=255,verbose_name="密码")

        gender = models.BooleanField(default=True,verbose_name="用户性别")

        email = models.EmailField(verbose_name="邮箱")

        # createtime = models.DateTimeField(default=datetime.now(),verbose_name="创建时间")

        # auto_now表示生成的时间,之后不会再改变,auto_now_add指的是每次更新的时间,会自动变化的

        createtime = models.DateTimeField(auto_now=True)

3、在根目录的终端下执行代码,生成一个迁移文件,即生成sql语句

python manage.py makemigrations

(可选操作)可以对生成的sql语句进行查看

python manage.py sqlmigrate

4、对生成的sql语句进行执行

python manage.py migrate

5、将数据保存在数据库,三种方法

方法一(不推荐):在上面Users对象下创建一个函数来实现用户数据的添加,类方法,继承了Model对象

# 使用类方法实现数据增加

@classmethod

def add_user(cls,username,password,age,nickname,email):

        cls(username=username,password=password,age=age,nickname=nickname,email=email)

在views模块执行

# 导入models模块

from . import models

def registser(request):

        username = "zhengyuchao1"

        age = 19

        nickname = "草草"

        email = "[150@qq.com](mailto:150@qq.com)"

        password = "123456"

        user = models.Users.add_user(username=username,password=password,age=age,nickname=nickname,email=email)

        user.save()

        return HttpResponse("注册成功")

方法二:创建一个Manager管理对象,来操作数据的添加

创建一个UserManager对象

必须继承manager类

class UserManager(models.Manager):

        def add_user(self,username,password,nickname,age,email):

                user = self.create(username=username,password=password,nickname=nickname,age=age,email=email)

                return user

在Users对象中添加一行代码关联这个对象

   userManager = UserManager()

在views视图中操作该Manager对象,自带save方法,不用再次执行了

   user = models.Users.userManager.add_user(username=username,password=password,age=age,nickname=nickname,email=email)

方法三:因为Model模块已经封装了数据添加存储的方法,直接在views中使用

        user = models.Users(username=username,password=password,age=age,nickname=nickname,email=email)

        user.save()
```

相关文章

网友评论

      本文标题:django链接数据库(继入门文章)

      本文链接:https://www.haomeiwen.com/subject/fdmwfctx.html