django主要目录结构
mysite文件夹
mysite同名文件夹
settings.py
urls.py
wsgi.py
manage.py文件
app01文件夹
migrations文件夹
admin.py
apps.py
models.py
tests.py
views.py
db.sqlite3
"""
1.创建app之后一定要去settings.py中注册
INSTALLED_APPS = [
# 全写
'app01.apps.App01Config',
# 简写
'app02'
]
2.templates路径配置
TEMPLATES = [
{
'DIRS': [os.path.join(BASE_DIR, 'templates')]
}
"""
django是可以自动重启的 但是有时候自动重启的反应时间有点长
django小白必会三板斧
1.HttpResponse
HttpResponse('hello django!')
暂且理解为可以返回给前端浏览器文本类的数据
2.render
render(request,'index.html',{'n1':[1,2,3]})
render(request,'index.html',locals())
返回给前端浏览器html页面 并且提供模板语法
3.redirect
重定向
redirect('https://www.baidu.com')
redirect('/admin/')
urls.py 存放路由与视图函数对应关系 路由层
views.py 存放视图函数(核心业务逻辑) 视图层
templates文件夹 存放html文件 模板层
models.py 存放与数据库相关的代码(ORM) 模型层
"""
1.django默认的端口号是8000
在同一台机器同一时间如果需要运行多个django项目 需要修改端口号
python3 manage.py runserver ip:port
pycharm自主修改
2.浏览器缓存
settings
networks
disable cache
"""
静态文件配置
'''为什么前端请求不到后端的框架资源:我们没有开设对应的资源接口'''
针对静态资源的路径开设无需在urls.py中指定 只需要在配置文件指定即可
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static')
]
/static/bootstrap-3.4.1-dist/js/bootstrap.min.js
不会频繁更改的文件
css文件、js文件、第三方框架文件、图片
static文件夹
该文件内部还可以依据不同的功能划分不同的区域
css文件夹
js文件夹
img文件夹
others文件夹
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'),
os.path.join(BASE_DIR,'static1'),
os.path.join(BASE_DIR,'static2')
]
"""
接口前缀正确之后 拿着后面的路径去列表中
从上往下依查找对应的资源 找到了就不再继续往下找
"""
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>
网络请求方式
1.get请求
朝别人索要数据
eg:浏览器地址栏输入www.baidu.com回车
get请求没有请求体
get请求也可以携带一些的额外的参数 但是大小有限制(2KB)
url?xxx=yyy&aaa=bbb
2.post请求
朝别人提交数据
eg:用户注册登录填写完身份数据之后提交
post请求有请求体
post请求也可以携带数据 并且大小没有限制 在请求体中
form表单重要参数
action
1.写全路径 https://www.baidu.com
2.写后缀(ip和端口自动补全当前服务器) /index/
3.不写 提交给当前页面所在的地址
method
get form表单默认是get请求
post
"""
注意使用django前期在提交post请求之前需要去配置文件中注释掉一行代码
MIDDLEWARE = [
# 'django.middleware.csrf.CsrfViewMiddleware',
]
"""
requests对象方法
request.method
request.POST
request.POST.get()
request.POST.getlist()
request.GET
request.GET.get()
request.GET.getlist()
def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
if username == 'jason' and password == '123':
return HttpResponse('OK')
else:
return HttpResponse('用户名或密码错误')
return render(request, 'login.html')
pycharm链接MySQL
database选项
django链接MySQL
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db4_3',
'USER':'root',
'PORT':3306,
'HOST':'127.0.0.1',
'PASSWORD':'123',
'CHARSET':'utf8'
}
}
import pymysql
pymysql.install_as_MySQLdb()
'''只要是__init__文件即可 项目的 应用的都可以'''