day03 Django目录结构与reques对象方法

今日内容概要

  • django主要目录结构
  • 创建app注意事项(重点)
  • djago小白必会三板斧
  • 静态文件配置(登录功能)
  • requeste对象方法a
  • pycharm链接MySQL
  • django链接MySQL(重点)

django主要目录结构

mysite项目文件夹
mysite文件夹:
settings.py :django暴露给用户可以自定义配置的文件
urls.py :路由与视图函数对应关系(路由层)
wsgi.py :依赖于wsgiref模块的socket启动部分 manage.py :django的入口文件
db.sqlite3 :django自带的小型数据库(针对日期格式无法精准存取)
templates文件夹 :存放html文件
static文件夹 :存放静态文件(css,js,img等) app01文件夹
admin.py :django后台管理
apps.py :注册使用
migrations文件夹 :数据库迁移文件(存放ORM针对数据库相关的记录)
models.py :数据库相关的模型类(orm)
tests.py :测试文件
views.py :该app对应的主题功能,视图函数(视图层) # 专业说法
usrl.py :路由层
views.py :视图层
templates :模板层
models.py :模型层

创建app注意事项(重点)

1.创建app之后一定要去settings.py中注册  # 不注册,项目会找不到创建的app
app注册方式有两种方式:
全写:'app01.apps.App01Config',
简写:'app02' INSTALLED_APPS = [
# 全写
'app01.apps.App01Config',
# 简写
'app02'
] 2.templates路径配置去settings.py中修改
TEMPLATES = [
{
'DIRS': [os.path.join(BASE_DIR, 'templates')] # 把templates文件夹放到全局里面
} 3、post请求会出现403
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware', # 把这行注释就好了
]
# 注:django是会自动重启的,但是自动重启的时间优点长。
# 原理是:只要修改一点配置django就会重启,有时还没修改完会报错不用理会,修改完后在重启。

djingo小白必会三板斧

1、HttpResponse:返回文本,参数为字符串,字符串中写文本内容。如果参数为字符串里含有 html 标签,也可以渲染。

	# 实例:
def index(request):
return HttpResponse('hello django!')
暂且理解为可以返回给前端浏览器文本类的数据 2、render:返回文本,第一个参数为 request,第二个参数为字符串(页面名称),第三个参数为字典(可选参数,向页面传递的参数:键为页面参数名,值为views参数名)。 # 实例:
def index(request):
return render(request,'index.html',{'n1':[1,2,3]}) # 精准传(复杂但节省资源)
return render(request,'index.html',locals()) # 范围传(简单但不节省资源)
返回给前端浏览器html页面 并且提供模板语法 3、redirect:重定向,跳转新页面。参数为字符串,字符串中填写页面路径。一般用于 form 表单提交后,跳转到新页面。 # 实例:
def index(request):
return redirect('https://www.baidu.com') # 可以写全称
return redirect('/admin/') # 也可以只写后缀(默认补齐当前IP和PORT) # 注意事项:
1、django默认的端口号是8000
在同一台机器同一时间如果需要运行多个django项目 需要修改端口号。不然会造成端口冲突。
# 修改端口号两种方式:
python3 manage.py runserver ip:port # 命令行修改
pycharm自主修改:右上角点项目名称----->第一个---->port修改 # pycharm自主修改 2、浏览器缓存:会影响项目测试
# 解决方法:清除浏览器缓存
浏览器开发者面板---->networks----->disable cache(清除缓存)

静态文件配置

# 注:
开放了静态资源,所有人都可以通过网址来找到开放的资源 # 切记核心代码不要开放,不然会泄露 问题1:已经加上bootstrap文件但是没有添加样式
Request URL: http://127.0.0.1:8000/static/bootstrap-3.4.1-dist/css/bootstrap.min.css
Status Code: 404 Not Found
# 因为没有向外界开放static文件夹资源 # 解决:
'''为什么前端请求不到后端的框架资源:我们没有开设对应的资源接口'''
# 1)针对静态资源的路径开设无需在urls.py中指定 只需要在settings.py配置文件指定即可
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static') # 开放static文件夹资源
] # 2)html文件修改,既然已经开放了资源,写相对路径就可以,不用写绝对路径
<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、什么是静态文件
答:网站提前写好不会频繁更改的文件
静态文件:css文件、js文件、第三方框架文件、图片 2、django存储静态文件
# 会创建一个static文件夹,专门存放静态文件
static文件夹: 该文件内部还可以依据不同的功能划分不同的区域
css文件夹
js文件夹
img文件夹
others文件夹 3、进阶关系(重点)
'''切记:不要开放核心代码资源,会造成源代码泄露的严重后果'''
STATIC_URL = '/static/' # 接口前缀(要想访问静态资源 那么路径的前缀就必须是这里指定的)
# 将static文件夹所有的资源开设给外界
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'), # 文件夹名称
]
# 决定找到文件的是 “接口前缀”,如果把接口前缀改了,那么就找不到这个资源。
"""
接口前缀正确之后 拿着后面的路径去列表中
从上往下依查找对应的资源 找到了就不再继续往下找
""" 4、接口前缀动态匹配
# 需求:有100份html文件,都需要改接口前缀。如何快速的修改?
# 解决:html文件添加下面固定样式,实时修改接口前缀。 # 原配置:
<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> # 修改:
{% 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)
https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000 # 地址后边加上?为get请求 2、post请求:向别人提交数据
eg:用户注册登录填写完身份数据之后提交
# 特点:
post请求有请求体
post请求也可以携带数据,并且大小没有限制,在 请求体中。

form表单重要参数

action:# 控制数据提交的网址
1.写全路径:https://www.baidu.com
2.写后缀(ip和端口自动补全当前服务器) # 比如就写一个:/index/
3.不写,提交给当前页面所在的地址 method: # 控制数据提交的方式
get:form表单默认是get请求
post:使用前提,需要修改settings.py文件中一行代码,不然会报403 1、使用post请求遇到403怎么解决呢?
# 注释掉这一行,就不会报403权限不足。
MIDDLEWARE = [
# 'django.middleware.csrf.CsrfViewMiddleware',
]

request对象方法

1、request.method  # 获取请求方式名(纯大写的字符串)
GET POST 2、request.POST # 获取post请求提交的普通数据,并以字典的形式
request.POST.get() # 获取列表最后一个元素
request.POST.getlist() # 获取整个列表的数据 3、request.GET # 获取get请求url问号后面的数据
request.GET.get()
request.GET.getlist()

简易版本登录注册功能

<QueryDict: {'username': ['meng'], 'password': ['123']}>  # 获取到post提交的数据,是一个字典

def login(request):
# print(request.method) # 获取当前请求方法名(纯大写字符串)
if request.method == 'POST':
# 获取用户提交的post请求普通数据(不包含文件、视屏等)
# print(request.POST)
username = request.POST.get('username') # 默认只会取列表最后一个元素
password = request.POST.get('password') # 想要获取数据,前提:input加上name属性
if username == 'meng' and password == '123':
return HttpResponse('网站首页')
else:
return HttpResponse('用户名密码错误')
else:
# 返回给用户一个登录页面(html文件)
return render(request, 'login.html')

pycharm链接MySQL

# pycharm右上角点database按钮,一路点点点。

django链接MySQL(重点)

第一步:修改settings.py文件  # 在databases中修改数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db1',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '123',
'CHARSET':'urf8',
}
} 第二步:在__init__文件中添加配置 # 不然会报错
import pymysql
pymysql.install_as_MySQLdb()
'''只要是__init__文件即可 项目的 应用的都可以'''

day03 Django目录结构与reques对象方法的更多相关文章

  1. Django Auth模块及User对象方法

    一:Django的用户认证 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1:authenticat ...

  2. 层级目录结构的Makefile递归编译方法

    层级目录结构的Makefile编写方法. 层级目录结构的Makefile编写方法. 0.前言 1.如何编译整个工程 2.过滤每层不需要编译的目录 3将所有输出文件定向输出. 0.前言 假如现在有这样一 ...

  3. Django工程目录结构优化

    1.我看到这篇文章,写的不错,在此复制了一份,防止以后找不到! 感谢作者的翻译--->原文的链接:http://www.loonapp.com/blog/11/ 如果原文存在,请打开原文件阅读 ...

  4. Django 基本使用及目录结构

    1.安装 pip3 install django 默认为最新版 2.创建Django项目 在即将创建的Django项目,目录下运行命令 1.django-admin startproject my_p ...

  5. [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]

    [Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...

  6. HttpResponse,render,redirect,静态文件配置,request对象方法,pycharm连接MySQL,django连接MySQL,django ORM

    HttpResponse 主要用于返回字符串类型的数据 def index(request): return HttpResponse('index页面') 在页面中就会显示 index页面 rend ...

  7. django三板斧与request对象方法与ORM

    目录 django三板斧 HttpResponse() render() redirect() 网页获取静态文件样式 request对象方法 post请求问题 针对get请求和post请求执行不同代码 ...

  8. Django 创建 APP和目录结构介绍

    一.通过pip安装Django 以windows 系统中使用pip命令安装为例 win+r,调出cmd,运行命令:pip install django自动安装PyPi 提供的最新版本.指定版本,可使用 ...

  9. 二十一、【.Net开源框架】EFW框架Web前端开发之目录结构和使用FireBug调试方法

    回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu. ...

随机推荐

  1. 微信小程序API接口封装

    @ 目录 一,让我们看一下项目目录 二,让我们熟悉一下这三个文件目的(文件名你看着办) 三,页面js中如何使用 今天的API的封装,我们拿WX小程序开发中,对它的API (wx.request)对这个 ...

  2. Oracle 11G单机 无网络环境静默安装

    参考文章https://blog.csdn.net/xiaoyu19910321/article/details/89856514 环境centos 7.6最小化安装 1,关闭防护墙selinux,配 ...

  3. Go语言核心36讲(Go语言进阶技术十五)--学习笔记

    21 | panic函数.recover函数以及defer语句 (上) 在本篇,我要给你展示 Go 语言的另外一种错误处理方式.不过,严格来说,它处理的不是错误,而是异常,并且是一种在我们意料之外的程 ...

  4. Go语言核心36讲(Go语言实战与应用四)--学习笔记

    26 | sync.Mutex与sync.RWMutex 从本篇文章开始,我们将一起探讨 Go 语言自带标准库中一些比较核心的代码包.这会涉及这些代码包的标准用法.使用禁忌.背后原理以及周边的知识. ...

  5. FZU ICPC 2020 寒假训练 3

    P1308 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数.现在,请你编程实现这一功能,具体要求是:给定一 ...

  6. 菜鸡的Java笔记 - java 线程常用操作方法

    线程常用操作方法        线程的命名操作,线程的休眠,线程的优先级            线程的所有操作方法几乎都在 Thread 类中定义好了            线程的命名和取得      ...

  7. [atAGC049E]Increment Decrement

    由于每一个操作的逆操作都存在,可以看作将$a_{i}$全部变为0的代价 先考虑第一个问题,即对于确定的$a_{i}$如何处理 如果仅能用第2种操作,定义点$i$的代价为以$i$为左端点或以$i-1$为 ...

  8. [loj2473]秘密袭击

    容易发现答案即$\sum_{S}\sum_{u=1}^{W}[u\le val(S)]=\sum_{u=1}^{W}\sum_{S}[u\le val(S)]$,那么可以枚举权值$u$,并将点权$va ...

  9. docker 启动报错:Docker.Core.Backend.BackendException: Error response from daemon: open \\.\pipe\docker_e

    win10 docker启动后报错: Docker.Core.Backend.BackendException:Error response from daemon: open \\.\pipe\do ...

  10. iNeuOS工业互联网操作系统,分布式云端控制安全策略和增加实时日志功能

    目       录 1.      概述... 2 2.      平台演示... 2 3.      云端控制策略和应用过程... 2 3.1           云端控制策略... 2 3.2   ...