首页 > 其他分享 >Django(二)

Django(二)

时间:2023-04-23 20:46:49浏览次数:29  
标签:username models request Django static print password

Django(二)

配置文件的介绍

SECRET_KEY = 'django-insecure-l90y*hw_4v_&tgpwi$js+7)899ltdn=$=3$c!yct!f*mc6u#0j'  # 盐


DEBUG = True  # 不想显示错误就改成False,上线的时候在改成False

# 配置数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 改语言
LANGUAGE_CODE = 'zh-hans'

# 改时区
TIME_ZONE = 'Asia/Shanghai'

静态文件的配置

"""
	在Django中一般吧html放到tempates下面
	静态文件放到static文件夹下面
	静态文件:
		CSS文件
		JS文件
		img
		第三方前端框架:bootstrap相关的
	Django不会自动创建static,需要手动创建
	名字无所谓,推荐叫static,在static里面可以按照不同的功能进行划分
"""
# 在浏览器中输入网址,如果找不到,说明对应的服务端没有开设对外访问的接口

# 静态文件配置
STATIC_URL = '/static/'

# 以后凡是找静态文件,都从下面的列表中得路径去找
# STATICFILES_DIRS = [
#     '/static/css/my.css'
# ]
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

# 动态解析
{% load static %}  # 动态解析,在html写上这些,以后STATIC_URL = '/static/'这个位置可以随便改
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>

request对象的方法

<form action="/login">
	# 1. 全写
    # 2. 什么都不写------------->默认朝当前地址提交
    # 3. 写后缀
    
提交post请求方式的表单的时候需要去配置文件中找到MIDDLEWARE然后注释掉里面这句话#'django.middleware.csrf.CsrfViewMiddleware',

print(request.POST)  # 接收post请求提交过来的数据
print(request.POST.get('username'))  # 获取的是字典里面key=username的值
print(request.POST.get('password'))  # 获取的是字典里面key=password的值
print(request.POST.get('hobby'))  # 获取的是字典里面hobby这个列表里面最后一位
print(request.POST.getlist('hobby'))  # 获取的是字典里面hobby整个列表

print(request.GET)  # 打印的是浏览器申请的数据
print(request.GET.get('username'))  # 没有值就None
print(request.GET.getlist('hobby'))  # 没有值就空列表

pycharm链接数据库(MySQL)

# 这个时候pycharm就是数据库的客户端了,类似于Navicat,

Django链接数据库(MySQL)(掌握)

# django默认自带的有一个小型数据库-------------->sqllite
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 链接MySQL数据库
   'default': {   # 用这个替换上面那个,里面的具体参数按自己的需求修改
        'ENGINE': 'django.db.backends.mysql',  # 引擎
        'NAME': 'db9',   # 数据库名称
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '123',
        'CAHRSET': 'utf8', 
    }
# 以上配置改完之后,框架启动不起来了
'''
	djang框架底层链接MySQL用的模块是MySQLdb模块,这个模块的兼容性很差,所以,我们不用
	我们认为的把MySQLdb模块改为pymysql模块
'''
# 修改pymysql模块
在Django框架的任意__init__.py文件中加入以下两句话:
************************************************************************
        import pymysql  #这句话的意思其实就是猴子补丁
        pymysql.install_as_MySQLdb()
************************************************************************
'''
	如果你使用pymysql模块的话,每次都要加上面两句话,也很不方便,但是,你目前先用着
	后面还有个模块:mysqlclient模块,这个模块的兼容性非常强,就不用在加任何东西
	它有个缺点:一般情况下,安装不上.
'''

Django的ORM操作

ORM: 对象关系映射
作用:我们以后再操作数据库的时候,就不用在写原生sql语句,用面向对象的代码去写,然后他给你翻译成原生sql语句。

# 缺点:封装程度太高,ORM的sql执行效率没有原生sql执行的效率高,这个效率的影响暂时忽略

# 关系映射:
表					>>>:      类名

记录					>>>:	 对象

字段					>>>:      属性

'''我们的ORM相关代码写在哪里呢?在models.py文件中写'''

# 创建一张表出来
class User(models.Model):  # 每个类必须继承models.Model 表名:User
    id = models.AutoField(primary_key=True)  # 创建一个主键

    username = models.CharField(max_length=32)  # varchar(32),max_length=32必填,具体数字随便

    password = models.CharField(max_length=32)

    age = models.IntegerField()   # int
# 代码写完之后,需要执行两个命令才能把表创建出来

# *******************************************************************************
        python36 manage.py makemigrations  # 相当于把迁移过程发生的事情给你记下来了
        python36 manage.py migrate         # 这句话才真正的把表创建出来
 '''上面两句话缺一不可,都要执行!!!'''
'''只要修改了跟数据库相关的代码,都要执行上面两句话'''
# *******************************************************************************

class Author(models.Model):
    ''''
        由于每张表都应该有一个主键字段,并且主键字段名都叫id,如果满足这两个条件,那么,可以省略不写,自动帮你创建主键字段出来
    '''
    # username varchar(32)
    username = models.CharField(max_length=32)

    # password varchar(32)
    password = models.CharField(max_length=32)

orm针对字段的增删改查

# 增加
class User(models.Model):
    # 在类里写上自己要增加的字段,然后写上那两条语句
# 删除  直接注释后执行那两条语句

数据的增删改查

# 查
 res=models.UserInfo.objects.filter(u.sername=username, password=password).first()
    '''filter(username=username, password=password)里面的条件是and关系'''
    # print(res[0]) # <QuerySet [<UserInfo: UserInfo object>]>
    # print(res[0].username) # <QuerySet [<UserInfo: UserInfo object>]>
    # print(res[0].password) # <QuerySet [<UserInfo: UserInfo object>]>
    if res:
        # print('登录成功')
        models.UserInfo.objects.create(username='tank', password='123') 
    else:
        print('用户名或者密码错误')
        
# 插入数据
models.UserInfo.objects.create(username='tank', password='123')

标签:username,models,request,Django,static,print,password
From: https://www.cnblogs.com/juzixiong/p/17347663.html

相关文章

  • Django(三)
    Django(三)ORM的增删改查模板变量的分配"""第一种方式"""defab_render(request):#模板语法,写在views中user_dict={'username':'lisi','password':123}returnrender(request,'ab_render.html',{'......
  • mysql主从:mysql 主从、django使用多数据库做读写分离
    目录一、mysql主从介绍搭建步骤二、django使用多数据库做读写分离一、mysql主从介绍MySQL主从复制是一种常见的数据库复制技术,可以将一个MySQL数据库的数据复制到多个从库中,从而提高读取性能和数据可用性。在主从复制中,主库是数据的源头,从库是数据的副本,主库将数据变更记录......
  • Django4全栈进阶之路5 对各类数据库连接设置
    Django4支持多种类型的数据库连接,包括MySQL、PostgreSQL、SQLite、Oracle等。对于不同类型的数据库,需要进行不同的设置。下面是Django4对各类数据库连接的设置方法。MySQL在Django4中连接MySQL数据库,需要使用django.db.backends.mysql引擎。在settings.py文件中......
  • Django笔记二十九之中间件介绍
    本文首发于公众号:Hunter后端原文链接:Django笔记二十九之中间件介绍这一节介绍一下Django的中间件。关于中间件,官方文档的解释为:中间件是一个嵌入Django系统的request和response的钩子框架,是一个能够全局改变Django输入/输出的系统。我们可以这样理解,一个request......
  • Django4全栈进阶之路3 Model模型
    在Django中,模型(Model)是用于定义数据结构的组件,其作用如下:定义数据结构:模型用于定义数据库中的表格和表格中的字段(列),其中每个模型类对应一个表格,模型中的每个字段对应表格中的一列。模型的定义可以在 models.py 文件中完成。数据库操作:模型提供了简单易用的API用于操作......
  • django生命周期和路由层
    django生命周期https://www.yuque.com/liyangqit/cbndkh/evyps8django路由层1.路由匹配 django2.X及以上path第一个参数写什么就匹配什么 django1.X第一个参数是正则表达式 无论什么版本django都自带加斜杠后缀的功能也可以取消 配置文件中APPEND_SLASH=False#默......
  • mysql 主从,django操作读写分离
    目录mysql主从搭建步骤1.准备两台机器2.创建文件夹,文件(目录映射)3编写mysql配置文件(主,从)重要启动mysql容器,并做端口和目录映射连接主库修改新建用户连接从库修改配置django操作多数据库方法1.配置文件2.手动读写分离3.自动读写分离4.配置文件添加新点mysql主从目的: 主要做读......
  • Django全栈进阶之路3 Django4项目APP
    Django4项目APPdjango-adminstartappapp01或pythonmanage.pystartappapp01 #app01是app名称    PyCharm的样子:  ......
  • 1 python操作哨兵 、2 python操作集群、3 缓存优化、4 mysql 主从 、5 django使用多数
    目录1python操作哨兵2python操作集群3缓存优化3.1redis缓存更新策略3.2缓存击穿,雪崩,穿透4mysql主从5django使用多数据库做读写分离1python操作哨兵#高可用架构后---》不能直接连某一个主库了---》主库可能会挂掉,后来它就不是主库了#之前学的连接redis的操作,就用不......
  • Django静态文件,链接数据库,DRM操作
    目录配置文件的介绍静态文件的配置request对象form表单Django链接数据库(MySQL)(掌握)Django的ORM操作ORM基本语句数据的增查模板变量的分配配置文件的介绍SECRET_KEY='0yge9t5m9&%=of**qk2m9z^7-gp2db)g!*5dzb136ys0#)*%*a'#盐DEBUG=True#调试模式,等项目上线的时候......