04. django ORM、连接sqlite

一、登录功能,连接mysql

1、路由

url(r'^login', views2.login),
url(r'^index', views2.index),
url(r'^test', views.test),

2、视图函数

from django.shortcuts import render, redirect, HttpResponse
import pymysql


# Create your views here.
def index(request):
    return render(request, 'index.html')


def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')
    else:
        name = request.POST.get('username')
        password = request.POST.get('pwd')
        # 创建一个数据库链接
        conn = pymysql.connect(host='127.0.0.1', user='root', password='111', database='userinfo', port=3306, )
        cursor = conn.cursor()
        # 执行sql
        cursor.execute('select * from user where username=%s and pwd=%s', (name, password))
        ret = cursor.fetchone()
        print(ret)
        if ret:
            return redirect('/index')
        else:
            return HttpResponse('用户名或者密码错误')

3、模板文件login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css">
    <script src="/static/js/jquery.min.js"></script>
    <title>首页</title>
</head>
<body>

<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
                    aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">导航</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Project name</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
            <form class="navbar-form navbar-right">
                <div class="form-group">
                    <input type="text" placeholder="Email" class="form-control">
                </div>
                <div class="form-group">
                    <input type="password" placeholder="Password" class="form-control">
                </div>
                <button type="submit" class="btn btn-success">Sign in</button>
            </form>
        </div>
    </div>
</nav>


<div class="jumbotron">
    <div class="container">
        <h1>cc</h1>
        <p>同城交友</p>
        <p><a class="btn btn-primary btn-lg" href="#" role="button">点击加我微信</a></p>
    </div>
</div>

<div class="container">
    <div class="row">
        <div class="col-md-4">
            <h2>Heading</h2>
            <p>床前明月光</p>
            <p><a class="btn btn-default" href="#" role="button">View details »</a></p>
        </div>
        <div class="col-md-4">
            <h2>Heading</h2>
            <p>疑是地上霜</p>
            <p><a class="btn btn-default" href="#" role="button">View details »</a></p>
        </div>
        <div class="col-md-4">
            <h2>Heading</h2>
            <p>一行白鹭突然上青天</p>
            <p><a class="btn btn-default" href="#" role="button">View details »</a></p>
        </div>
    </div>

    <hr>

    <footer>
        <p>© 2016 Company, Inc.</p>
    </footer>
</div>

</body>
</html>

二、ORM概述

1、orm:对象关系映射(跟语言无关)
	数据库中的表-----》对应程序的一个类
    数据库的一行数据--》对应程序的一个对象
2、python中常见的orm框架
	-django的orm框架
    -sqlachemy orm框架
3、orm的作用:
	- 创建表(不能创建数据库,需要手动创建数据库)
    - 增加、删除表内字段
    - 增删改查数据
4、拓展
	java中写项目
    ssh框架:spring+struts(有漏洞)+hibernate(orm框架) (我的那个年代)
	ssm框架:spring+springmvc+mybatis(orm框架,可以写原生sql)
    springboot:sb框架 ,tomcat内置进去了
    springcloud:微服务

三、pycharm连接sqlite/mysql

四、django中orm的使用

1、sqlite:也是一个数据库,文件数据库,一个库就是一个文件,不需要单独安装
	- 要用关系型数据库,不想装mysql就可以使用sqlite
    - 移动开发本地存储数据,存在sqlite中
2、创建一个userinfo表,在models中国写一个类
3、表中有字段(类属性),字段有属性

1、创建表、新增删除子段的步骤:

(1)第一步,在models中写一个类

from django.db import models

class userInfo(models.Model):
    # 该字段自增,并且是主键
    id = models.AutoField(primary_key=True)
    # 该字段是varchar类型,长度为32(唯一约束,是否是索引,默认值是,是否可以为空)
    name=models.CharField(max_length=32)
    # 密码字段
    password = models.CharField(max_length=64)

(2)第二步,把表创建出来(执行两个命令)

- python3 manage.py makemigrations  # 这条命令会在migrations创建一条记录(数据库变更记录)
- python3 manage.py migrate  # 把更改的数据同步到数据库(真正的数据迁移)

2、插入数据(以userInfo表为例)

方式一:(手动保存到数据库)

user = UserInfo(name=cc,age=20)
user.save()

方式二:(创建对象并保存到数据库)

user=userInfo.objects.create(name=cc,age=20)

3、orm查询表内所有数据:

userInfo.objects.all()   # 放在了列表中[user1,user2,user3,...]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值