image

一、Django小白必会三板斧

"""
HttpResponse(返回字符串)
	返回字符串类型的数据
	
render(跳转网址)
	返回html文件的
	
redirect (返回一个页面)
	重定向
		
    return redirect('http://www.baidu.com/')
    return redirect('/home/')

"""

# app下的views.py文件中导入render,HttpResponse,redirect
from django.shortcuts import render,HttpResponse,redirect 

# Create your views here.
def index(request):
  # 视图函数必须要接收一个形参request
    return HttpResponse('字符串')

def login(request):
    user_dict = {'username':'joson','age':18}
    # 第一种传值方式:更加精确,节省资源
    # return render(request,'myfirst.html',{'data':user_dict,'deta':123})
    # 第二种传值方式:当你要传的值特别多的时候
        # locals会将所在名称空间所有的名字全部传递给html界面
    return render(request,'myfirst.html',locals())

def home(request):
    # return redirect('http://www.baidu.com')
    return redirect('/index')
  • 另外django还有一个很人性化的地方

    运行中的项目当你修改你的项目代码后django会自动重启,有时候会比较慢,你可以手动点击重启

二、静态文件配置

# 登录功能
"""
我们讲html文件默认都放在templates文件下
我们讲网站使用的静态文件默认都放在static文件夹下

静态文件
  前端已经写好了的 能够直接调用使用的文件
	网站写好的js文件
	网站写好的css文件
	网站用到的图片文件
	第三方前端框架
	...
	拿来就可以直接使用的
"""

# Django默认是不会自动帮你创建static文件夹 需要你自己手动创建
static
   ├─ bootstrap 前端已经写好了的能够直接调用的文件
   ├─  js  写好的js文件
   ├─  css 写好的css文件
   ├─  img 用到的img文件
   └─  其他第三方文件资源
    # 解耦合 方便管理
   
"""
在浏览器中输入url能够看到对应的资源
是因为后端提前开设了该资源的接口
如果访问不到资源 说明后端没有开设该资源的接口
"""

settings.py 静态文件配置

# 如果想要访问静态文件就必须以static开头
STATIC_URL = '/static/'  # 接口前缀 类似于访问静态文件的令牌
"""
例如有此路径:
<script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
/static/ 前面这个就是接口前缀
bootstrap-3.3.7-dist/js/bootstrap.min.js 后面的就是路径
书写了接口前缀之后 就拥有了访问下列列表中所有文件夹内部资源的权限
然后会以从上往下的顺序在列表里面依次查找,直到拿到路径返回给页面
都没有才会报错

"""
# 静态文件配置
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static') # 这个static就是真正的静态文件夹路径
    os.path.join(BASE_DIR, 'static1')
    os.path.join(BASE_DIR, 'static2')
]

静态文件接口前缀动态解析

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态解析</title>
    {% load static %}
    <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
    <script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>
</head>
<body>

</body>
</html>

form表单

# form表单默认使用的是get请求数据

# form表单action参数:控制后端提交的路径

"""
1.不写:默认朝当前所在的url(页面地址)提交数据
2.全写:指名道姓 https://www.baidu.com
3.只写后缀 :/index/
form表单method参数:默认是get请求,可以改成post请求
"""

get和post的区别?
	http://127.0.0.1:8000/login/?a=1&b=2&c=3
    '''
    	get请求:
    		1. get没有请求体
    		2. 对数据大小的限制是4KB
    		3. 不安全
    	post请求:
    		1. post才有请求体
    		2. 对数据大小没有限制
    		3. 安全
    '''     

在前期使用django提交post请求的时候需要先去配置文件中注释掉一行代码 :看下图

image-20210314215356759

三、pycharm链接MySQL

  • Database工具栏

07e79e4473abd8f9bb5bef9aa2644a2

  • 下载对应驱动即可

24ba128f01911c4f4dfe88473d33273

四、Django连接MySQL

1.在settings.py配置文件修改配置

"""django默认使用自带的sqlite3"""
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db666',  # 数据库名称 一定要事先创建好才能指定
        'HOST':'127.0.0.1', # 数据库IP,暂用本地回环地址
        'PORT':3306,     # 数据库端口
        'USER':'root',   # 数据库用户名
        'PASSWORD':'123', # 数据库密码
        'CHARSET':'utf8'  # 指定字符编码
    }
}	

2.在项目文件夹或者应用文件夹内的__init__.py文件中书写固定的代码

  • django默认用的是mysqldb模块链接MySQL

    但是该模块的兼容性不好,需要手动改为用pymysql模块链接

'''
	在python3.6版本以下,需要加入下面两句话
        需要先安装pymysql
        pip3 install pymysql

        import pymysql
        pymysql.install_as_MySQLdb()
'''

image

posted on 2022-02-25 16:58  耿蜀黍  阅读(46)  评论(0编辑  收藏  举报