Day71Django基础
Django框架基础
一 python中的web框架
a:socket
b:路由跟视图函数匹配关系
c:模板渲染
django: a: 用了别人的wsgiref b:自己写的 c:自己写的
flask: a: 用了别人的 b:自己写的 c:用了别人的:jinja2
tornado: a: 自己写的 b:自己写的 c:自己写的
二 http协议:
特点:1 基于TCP/IP协议之上的应用层协议
2 基于请求-响应模式
3 无状态保存
4 无连接
请求格式:
请求首行 get / http/1.1\r\n #方法 UIL 协议版本
key:value\r\n\r\n
请求体的内容
响应格式:
响应首行 http/1.1 200 ok \r\n #协议版本 状态码 状态码原因
响应头: key:value\r\n
\r\n
响应体: html的代码
状态码: 1开头 正在处理, 2开头 正常成功, 3开头 重定向状态,
4开头 客户端发送错误, 5开头 服务端处理错误
三 django的安装和简单使用
安装:1 pip3 install django==1.11.9 #cmd上安装
2 pycharm 下安装,选择版本号 #pycharm安装
使用:(cmd上使用)
命令创建项目 :django-admin startproject 项目名字
创建app: python3 manage.py startapp app01
#也可以在pycharm上使用项目,创建项目,创建第一个app
文件目录介绍:
manage.py---项目入口,执行一些命令
项目名
settings:全局配置信息
urls:总路由,请求地址跟视图函数的映射关系
app名字
migrations:数据库迁移的记录
models.py 数据库表模型
views 视图函数
运行项目:
pycharm:打开项目,启动项目,点绿色三角(提前设置好ip和端口)
cmd中:pytyon3 manage.py runserver 127.0.0.1:8001
四 django中app的概念:
****强调***:创建了app,要在配置文件(settings)中注册
##使用pycharm创建的第一个app不需要注册,cmd添加的app全部要注册
五 模板路径配置:
1 templates文件夹
内部是关于前端html也面文件的页面文件
2 使用时必须使templates在settings里注册一下
六 静态文件配置:
1 STATIC_URL = '/static/' 一般不要改(在配置文件(settings)中)
2 创建一个static文件夹 一般不要改(用于存放所有css,js,img文件)
3 STATICFILES_DIRS=[
os.path.join(BASE_DIR, 'static'), 创建的文件夹路径(可以写多个)
]
七 完整版登录功能
1 login.html (templates文件中)
重点:1 action:提交到后台的地址三种写法:
1 http://127.0.0.1:8000/login
2 /login/ 推荐用
3 空
2 method post方式
3 <input type="submit" value="提交">或<button></button>
type不可以是button
例子:
<form action="http://127.0.0.1:8000/login" method="post">
<p>用户名:<input type="text" name="name" class="form-control"></p>
<p >密码:<input type="password" name="pwd" class="form-control"></p>
<input type="submit" value="提交"></form>
2 视图层:
1 request.method ----获得前台提交过来请求的方式
2 request.POST(相当于字典)----post形式提交过来的数据,(http请求报文的请求体重)
3 request.POST.get('name') ----推荐用get取值(取出列表最后一个值)
4 request.POST.getlist('name')-----取出列表所有的值
5 前台get方式提交的数据,从request.GET字典里取
3 链接数据库
conn = pymysql.connect(host='127.0.0.1', port=3306, db='lqz', user='root', password='admin')
cur = conn.cursor()
cur.execute('select * from user where name=%s and password=%s ', [name, pwd]) #(防止注入,推荐写法)
user = cur.fetchone()
八 get请求和post请求
get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制)
post:往后台提交数据
九 新手三件套总结
1 render--返回页面
默认会去templates里找,注意路径
2 redirect--重定向页面
3 HttpResponse--返回一个字符串
本质:都是返回HttpResponse的对象
十 orm介绍
1 ORM即Object Relational Mapping,全称对象关系映射。
优点:
1 不用写sql,不会sql的人也可以写程序
2 开发效率高
2 缺点:
1 可能sql的效率低
3 如何使用:
如果连接mysql:在setting里配置:
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'admin',
'NAME': 'lqz',}
在app下的__init__.py里写:
import pymysql
pymysql.install_as_MySQLdb()
4 django-orm:
1 不能创建数据库(需要手动创建数据库)
2 可以创建数据表
3 可以创建字段
5 数据库迁移
1 python3 manage.py makemigrations ----记录一下数据库的变化
2 python3 manage.py migrate ----将变化同步到数据库中
Day71Django基础的更多相关文章
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- HTTPS 互联网世界的安全基础
近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- .NET基础拾遗(5)多线程开发基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
随机推荐
- Codeforces1099F. Cookies(线段树+dp+贪心+博弈)
题目链接:传送门 思路: 分析到处理节点时的吃cookie的顺序了,然鹅不会用线段树维护前缀和.技术门槛QAQ... 很容易想到可以从root开始搜索,每次深入消耗时间2*边权w. 然后对于深入到点u ...
- Failed to create the XA control connection. Error: "找不到存储过程 'master..xp_sqljdbc_xa_init_ex'。
Failed to create the XA control connection. Error: "找不到存储过程 'master..xp_sqljdbc_xa_init_ex'. 抛出 ...
- web过滤器
Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ht ...
- vs2017 asp.net 网站发布问题 (发布路径下含源码文件)
使用vs2010版本,网站发布后会自动将源码发不为.dll程序集,但vs2017需要进行设置,其他版本没有试过. vs2017网站发布: 1. 2. 这里给一个你想用的名字,之后它会出现在你的程序文件 ...
- python3 多线程爆破ftp、mysql、ssh
当然 也支持ip 为 127.0.0.1-255 这样的 字典放到 dict 目录里 链接: https://pan.baidu.com/s/1htchOyN5hK9nmZlWfTiFzA 密码: v ...
- python随笔--复习专用
<!doctype html> blockquote:first-child, #write > div:first-child, #write > figure:first- ...
- 面试题-Python高级
元类 Python 中类方法.类实例方法.静态方法有何区别? 类方法:是类对象的方法,在定义时需要在上方使用“@classmethod”进行装饰,形参为cls, 表示类对象,类对象和实例对象都可调用: ...
- 学习3DES加密算法笔记
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...
- java中super关键字的作用
1.super关键字可以在子类的构造方法中显示地调用父类的构造方法,super()必须为子类构造函数中的第一行. 2.super可以用来访问父类的成员方法或变量,当子类成员变量或方法与父类有相同的名字 ...
- VS2015 加快编译速度
在使用VS2015 编译的时候,每次修改工程中的某一个文件,启动调试时,往往都是整个工程都需要重新编译一遍.由于这个工程代码量太大,每次编译完成都需要将近10分钟左右的时间编译.最烦人的时候是当编译完 ...