Django笔记一

一、安装

1、 安装
pip install Django==1.11.11(卸载django:pip uninstall django)
或者在pycharm里安装

2、 创建第一个Django项目
命令行创建
django-admin startproject 项目名
PyCharm
File -> new Project -> 左侧选第二项,右侧第一项是路径,第二项是选python版本

3、启动Django项目
(1) 命令行启动
在Django项目的根目录下,执行下面的命令

python manage.py runserver
python manage.py runserver 8080
停止:Ctrl + C

(2) PyCharm启动,点绿色三角,注意左侧框中的名字一定要是项目名称!

二、入入入门

1、文件功能
在这里插入图片描述
2、在urls.py里设置访问的路径及其对应函数
返回一个字符串
在这里插入图片描述
访问http://127.0.0.1:8000/login/
在这里插入图片描述
返回一个登陆页面
在这里插入图片描述
html文件要放在templates文件夹下,在settings.py配置文件里已经默认设置了
在这里插入图片描述
在这里插入图片描述
访问http://127.0.0.1:8000/login/
在这里插入图片描述

css、js、图片等静态文件路径
在settings.py最后面可以看到STATIC_URL = ‘/static/’
在这里插入图片描述
在这里插入图片描述
在该目录下创建一个css文件和js文件
在这里插入图片描述
在这里插入图片描述
然后在html文件中引用该css文件和js文件,一定要以/static/这个别名为开头
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、登陆页面示例

把boostrap和jquery文件放到static文件夹下
在这里插入图片描述
把登陆页面的html放到templates文件夹下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
出现黄色403把set文件里46行注释掉
在这里插入图片描述
在这里插入图片描述
在登陆按钮后面加上一个

,使用模板语言设置一个error_msg变量,使用{{ }}的格式
在这里插入图片描述
设置表单将填入的数据以post的方式传送到login页面
在这里插入图片描述
Django接收到访问/login/的请求,就调用login()函数
根据请求的方法来判断是第一次访问该页面还是要输入账号密码后要登陆,第一次访问该页面默认是GET方法,则将登陆页面返回给用户,如果是输入账号密码后使用的post方法,则获取request对象里的值,判断账号密码是否正确,正确的话跳转到index页面,错误的话进行提示。这里设置了一个error_msg变量的值
Login函数
在这里插入图片描述在这里插入图片描述

四、部分要素

  1. form表单提交数据的三个要素
    (1) form标签必须要有action和method属性
    (2)所有获取用户输入的标签必须放在form表单中,必须要有name属性
    (3)必须要有submit按钮

  2. Django 基础必会三件套
    from django.shortcuts import HttpResponse, render, redirect
    (1) HttpResponse:返回一个指定的字符串时
    (2)render:返回一个HTML文件
    (3)redirect:跳转

  3. request相关的属性
    (1)request.method --> 返回的是请求的方法(全大写):GET/POST …
    (2)request.GET --> 取得是URL里面的参数,类似于字典的数据结构
    (3)request.POST --> post提交的数据,类似于字典的数据结构

  4. Django的模板语言
    {{ 变量名 }}

  5. 程序连mysql,使用pymysql模块
    (1)导入pymysql模块
    (2)创建连接
    (3)获取执行命令的游标
    (4)用游标去执行SQL语句
    (5)获取SQL语句的执行结果
    (6)关闭游标
    (7)关闭连接

6、Django项目app --> 项目中又分了一级Python包,不同的功能放到不同的包里面
(1)创建app
python manage.py startapp app0
在这里插入图片描述
在这里插入图片描述
(2)告诉Django创建了一个app
在settings.py找那个的INSTALLED_APPS中添加新创建的app
在这里插入图片描述

四、Django中ORM的使用

1、 用处
操作数据表
操作数据行

2、 使用
(1) 手动创建一个数据库
-> create database mysite;
在这里插入图片描述
(2)在settings.py里告诉Django连哪个数据库
默认使用自带的一个数据库
在这里插入图片描述
修改为mysql
在这里插入图片描述

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  #连接数据库的类型
        'NAME': 'mysite',                         #数据库名
        'HOST':'127.0.0.1',                       #数据库主机
        'PORT':3306,
        "USER":'root',
        'PASSWORD':'123',
    }
}
  1. 用什么连数据库?
    利用第三方的包,比如第三方包:pymysql和MySQLdb
    告诉Django用pymysql模块代替默认的MySQLdb去连接MySQL数据库
    和settings.py同级的__init__.py文件,写上:
import pymysql
pymysql.install_as_MySQLdb()

告诉django,用pymysql来代替默认的mysqldb

  1. 在app/models.py的文件中创建类
    类必须继承models.Model
class User(models.Model):
    id = models.AutoField(primary_key=True)    #->创建一个自增的ID列作为主键
    email = models.CharField(max_length=32)    #->varchar(32)
    pwd = models.CharField(max_length=32)    #->varchar(32)
  1. 另个命令
    (1) python manage.py makemigrations --> 找个小本本把models.py的变更记录一下
    后面可以跟app名称
    在这里插入图片描述
    在migrations文件夹中查看变更记录
    在这里插入图片描述
    (2) python manage.py migrate --> 把上面的变更记录翻译成SQL语句,去数据库执行,后面可以跟app名称
    在这里插入图片描述
    查看表结构
    在这里插入图片描述
    在这里插入图片描述
    如果要删除或修改表结构,则把models.py里的类注释或修改,然后还是执行两个命令
    python manage.py makemigrations
    python manage.py migrate

(3)pycharm连接mysql在这里插入图片描述
打开控制台,可以下sql语句
在这里插入图片描述
点击数据表可以添加删除提交
在这里插入图片描述
6. ORM查询
User.objects.filter(email=’’, pwd=’’)
导入user类
在这里插入图片描述
修改login()函数,从数据库获取用户名和密码进行验证

def login(request):
    print(request.GET)
    print('-' * 120)
    error_msg = ''
    # 需要判断
    # 根据请求的方法来做判断
    if request.method == 'POST':
        # 如果是第二次来,表示填完了要给我发数据了             --> POST
        email = request.POST.get('email')
        pwd = request.POST.get('pwd')
        print(email, pwd)
        #查询值为xx的数据
        ret = User.objects.filter(email=email, pwd=pwd)
        if ret:
            return redirect('/index/')
        else:
            # 登录失败
            # 提示用户邮箱或密码错误
            error_msg = '邮箱或密码错误'
    # 如果你是第一次来,是跟我要一个登录页面用来填写数据的  --> GET
    return render(request, 'login.html', {'error_msg': error_msg})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值