内容概要


  • django小白必会三板斧
  • 静态文件及相关配置
    • 登录功能
    • 静态文件
  • request对象方法
  • pycharm链接MySQL
  • django链接MySQL
  • django orm操作
    • django orm简介
    • orm基本使用
    • 数据操作

内容详情


django小白必会三板斧

# 启动django项目之后 如何添加更多的功能
回想自己编写的web框架 如果要添加功能 就去urls.py和views.py
urls.py from app01 import views urlpatterns = [
# django自带一个路由器与视图函数对应关系(admin后台管理功能)
url(r'^admin/',admin.site.urls),
# 要具备一定的推导能力(模仿 猜测 已知推未知)
url(r'^后缀/', views.后缀对应函数)
]
# django自带重启功能
当识别到项目中代码有变化之后 隔段时间会自动重启 但是有时候较慢
# 与浏览器打交道的视图函数都应该有返回值 常见的就是下列三个
from django.shortcuts import render, HttpResponse, redirect
HttpResponse
主要用于返回字符串类型的数据
# return HttpResponse('')
render
主要用于返回html文件 并且支持模板语法(django自己写的)
# return render(request, 'xxx.html')
# return render(request, 'xxx.html', {'name':'jason'})
redirect
主要用于重定向 括号内可以写其他网站的全称 也可以自己网站的后缀
# return redirect('网址')
# return redirect('后缀')

静态文件及相关配置

登录功能

"""
我们之所以可以在浏览器地址栏中输入不同的路由访问到不同的资源
是因为我们在后端框架中提前开设了相应的访问接口所以用户才能访问
言外之意就是我们没有开设接口 那么肯定访问不到
"""
1.开设接口返回登录界面
2.登录界面需要使用bootstrap并且还需要自己编写css和js
静态文件
3.页面需要获取前端用户数据并且传递给后端
form表单
action参数:控制数据的提交地址
method参数:控制请求的提交方式
4.访问登录页面
静态文件全部显示资源不存在
http://127.0.0.1:8000/static/bootstrap-3.3.7-dist/css/bootstrap.min.css
因为我们并没有开设静态资源访问的接口
5.开设静态资源的访问接口
理论上应该自己去路由层开设接口资源 但是由于静态文件资源使用频率很高
只要是一个web项目都肯定需要 所以django为了避免开发者繁琐 提供了静态资源的配置文件 只需要填写固定的配置即可开设资源接口
settings.py
# 静态文件资源访问接口固定配置
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
# html页面路径
/static/mycss.css
6.配置文件中的两点疑惑
STATIC_URL = '/static/' # 作用是什么
STATICFILES_DIRS = [] # 为什么是列表(用来存储多个元素的)
"""
以该地址为例:/static/bootstrap-3.3.7-dist/css/bootstrap.min.css
/static/是接口前缀 表示具备访问静态文件资源的权限
具备了权限之后会拿着接口前缀后面的文件路径去列表中每个文件夹中查找
bootstrap-3.3.7-dist/css/bootstrap.min.css
找到一个就结束
比如 static和static1里面都有a.txt 那么只会拿到static中的
"""
7.接口前缀动态绑定
如果templates中有很多html文件并且都需要引入静态资源
现在把接口前缀修改了 那么会造成什么结果???>>>:页面无法加载资源
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">

静态文件

# 编写完成后不会经常被修改的与html页面相关的文件
css文件、js文件、图片文件、第三方框架文件(bootstrap)
上述文件都可以称之为是'静态文件'
在django中静态文件单独开设一个文件夹存储 默认叫static文件夹
在该文件夹内还可以根据功能的不同继续划分不同的文件
css文件夹 js文件 img文件夹 others文件夹

request对象方法

"""
提交post请求 默认会报403
前期不需要过多考虑 直接去配置文件中注释一行即可
MIDDLEWARE = [
# 'django.middleware.csrf.CsrfViewMiddleware',
]
"""
1.get请求和post请求都会触发同一个视图函数login的运行
如何针对不同的请求执行不同的代码
get请求返回一个登录页面
post请求获取用户数据并校验
2.获取当前请求方式
request.method 返回的是纯大写的请求方法字符串
"""由于get请求更加常见 post请求次之 所以还可以按照下列方式简写"""
if request.method == 'POST':
return HttpResponse('默默的奋斗才是王道 有了成就才有发言权')
"""默认让视图函数处理get请求"""
return render(request, 'login.html')
3.获取post请求提交的普通数据
request.POST 结果是一个QueryDict 可以看成字典处理
request.POST.get('username')
request.POST.getlist('hobby')
"""
get方法会拿到值列表中最后一个元素 而不是整个列表
getlist方法会直接拿到整个值列表
"""
4.如何获取url后面携带的数据
request.GET 结果是一个QueryDict 可以看成字典处理
request.GET.get('info')
request.GET.getlist('cityList')
"""
特征与上述request.POST一致 使用场景也很多
https://www.lagou.com/wn/jobs?kd=python&isSchoolJob=1&city=%E4%B8%8A%E6%B5%B7&pn=1
"""

pycharm链接MySQL

"""其实pycharm也可以充当很多数据库软件的客户端"""
1.pycharm右上方侧边 database
2.pycharm左下方边角 database
3.上述两个地方都没有 需要下载插件 或者直接重装一个正常的pycharm
settings
plugins
搜索database下载apple即可 # 链接数据库
1.选择数据库
2.首次链接需要下载驱动
download driver...
3.测试链接如果不通过 则需要换驱动重新下载使用
Driver:MySQL MySQL for 5.1
'''不再过多讲解 课下可自行研究'''

django链接MySQL

"""
django默认自带一个sqlite3数据库 但是功能很少 仅用于本地测试
"""
1.默认配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
2.修改配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'jp_05',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'jason123',
}
}
3.指定模块
在项目同名的文件夹内的__init__.py
或者应用名的文件夹内的__init__.py
添加一行固定的代码
import pymysql
pymysql.install_as_MySQLdb()

django orm操作

django orm简介

ORM:对象关系映射
# 特点
能够让不会写SQL的python程序员使用python语法就可以直接操作MySQL
好处:提升了开发效率...
坏处:封装了SQL语句 有时候可能效率不高 还需要人为编写SQL调优
# 概念
表 类
一行行数据 类产生的一个个对象
数据字段 对象的一个个属性

orm基本使用

# 如果需要使用ORM 需要去应用下的models.py中编写代码
1.编写类代码
class Users(models.Model):
uid = models.AutoField(primary_key=True) # 等价于uid int primary key auto_increment
name = models.CharField(max_length=32) # 等价于name varchar(32)
pwd = models.IntegerField() # 等价于pwd int
2.执行数据库迁移命令
python3 manage.py makemigrations # 记录操作
python3 manage.py migrate # 将操作迁移到数据库
"""
首次执行迁移命令 django还会自动创建一些默认需要使用到的表
"""
3.表名的特征
Users app01_users
由于django支持多个应用 为了区分不同应用下可能会出现相同的表名
所以自动加上了应用的前缀 因为同一个应用下不可能出现相同的表名(只要你是个正常的程序员都不会犯这样的错误)
4.扩展
1.表的主键可以不写 orm会自动帮你写一个名为id的主键
2.每次修改了跟数据库相关的python代码 都需要重新执行迁移命令
针对两个迁移命令 可以采用pycharm提示功能编写
tools
run manage.py task

数据操作

from app01 import models
1.增
user_obj = models.Users.objects.create(name='jack', pwd='333')
print(user_obj)
print(user_obj.uid)
print(user_obj.name)
print(user_obj.pwd)
2.查
res = models.Users.objects.filter(name='jason')
print(res) # <QuerySet [<Users: Users object>]>
print(res[0]) # Users object
print(res[0].uid) # 1
print(res[0].name) # jason
print(res[0].pwd) # 123
3.改
models.Users.objects.filter(uid=1).update(name='jasonNB')
4.删
models.Users.objects.filter(uid=3).delete()

django框架2的更多相关文章

  1. MVC其实很简单(Django框架)

    Django框架MVC其实很简单 让我们来研究一个简单的例子,通过该实例,你可以分辨出,通过Web框架来实现的功能与之前的方式有何不同. 下面就是通过使用Django来完成以上功能的例子: 首先,我们 ...

  2. Django框架-目录文件简介

    Rhel6.5 Django1.10 Python3.5 Django框架-目录文件简介 1.介绍Django Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django, ...

  3. Django框架学习

    两个月前学习的Django框架,写了个简易婚恋调查网站,代码就懒得全贴了,有两张图记录下

  4. django框架的models

    在django的框架设计中采用了mtv模型,即Model,template,viewer Model相对于传统的三层或者mvc框架来说就相当对数据处理层,它主要负责与数据的交互,在使用django框架 ...

  5. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

  6. MySQL在Django框架下的基本操作(MySQL在Linux下配置)

    [原]本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作,核心内容如下: ------------------------------------------------------ ...

  7. django框架介绍

    主要内容 1.        Django框架发展 2.        Django架构,MTV模式 3.        开发流程 4.        开发实例——Poll python下各种框架 一 ...

  8. Django学习(二) Django框架简单搭建

    为了快速学习Python进行Web的开发,所以我不准备从Python的基础学起,直接从Django框架入手,边学框架边学Python的基础知识. 下面就开始Django的快速开发之旅吧. 关于Djan ...

  9. Django - Django框架 简单介绍

    Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...

  10. Django框架全面讲解

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

随机推荐

  1. swig模板引擎和ejs模板引擎

    swig模板引擎的基本用法: 1. 变量 {{ name }}  //name名前后必须要加空格,不加就会报错 2. 属性 {{ student.name }} 3. 模板继承 swig使用exten ...

  2. drf认证、权限、限流

    认证Authentication(5星) 认证逻辑及编写步骤 逻辑 认证类:用来校验用户是否登录,如果登录了,继续往下走,如果没有登录,直接返回 编写步骤 -第一步:写一个类,继承BaseAuthen ...

  3. eclipse项目导入工作空间提示已存在问题

    项目直接放在 workspace 目录下,必须项目名和项目文件夹名相同,主要找的是eclipse 项目文件夹下的 .project 文件中的 <name> ... </name> ...

  4. xss攻击和防御

    简介 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允 ...

  5. Java第十五周作业

    Cola公司的雇员分为以下若干类:(知识点:多态) [必做题]• 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:getSalary(int mont ...

  6. XCTF练习题---MISC---pdf

    XCTF练习题---CRYPTO---混合编码解析 flag:flag{security_through_obscurity} 解题步骤: 1.观察题目,下载附件 2.根据题目提示,下载文件,发现是一 ...

  7. 龙智被评估为CMMI [3] 级

    2022年3月,龙智宣布已被评估为CMMI研究所的能力成熟度模型集成(CMMI)的 [3] 级. CMMI 是一个能力改进框架,它为组织提供有效流程的基本要素,最终提高其绩效. 成熟度级别 3 的评估 ...

  8. [AcWIng 799] 最长连续不重复子序列

    点击查看代码 #include<iostream> using namespace std; const int N = 1e5 + 10; int a[N], s[N]; int mai ...

  9. 虚拟机VMware 安装centos、常规配置、共享文件等

    安装centos7[通过vm来安装运行centos7] 一.准备工作 1.centos7 的安装镜像下载链接:http://isoredirect.centos.org/centos/7/isos/x ...

  10. 【java】错误: 找不到或无法加载主类 Test.class

    在配置java环境完成时,在cmd中运行 java -version  可以运行,但是当运行 helloworld 文件时,报错. 两种情况 解决: 1.运行 java helloworld 而不是  ...