「Django」6-startapp
之前的许多目录都是自建,比如views.py就是手动创建的。数据库操作用的都是pymysql语句,尽管封装成了函数以及对象,但应用场景更多的还是其自带的ORM来对数据库进行操作。
start app进入project目录,并创建app:
1> python manage.py startapp manageapp1
通常,当整个Web应用够大时,不同的app对应于不同的业务操作。
app的目录下:
admin.py → Django自带后台管理的相关配置
modal.py → 写类,根据类创建数据库表
test.py → 单元测试
views → 业务处理(可以是目录或Python文件)
路由分发不同的app之间的url可能会有冲突,需要有路由分发机制来保证url的独立。
在每个app目录下创建urls.py实现自身业务的url,在project同名目录下的urls.py分发:
12345from django.urls import path, re_path, includeurlpatterns = [ path('ma ...
「Django」5-Cookie&Session
CookieCookie是保存在浏览器端的”键值对”,服务器端可以向用户浏览器写入Cookie,客户端每次发Http请求时,在请求头中携带当前所有可访问的cookie,常应用于登录等环节。
set_cookie(明文)
cookie默认的生命周期在浏览器关闭后就结束了。其可以访问到的域名在创建的域名及其子域下,可以访问到的路径在创建的路径下及其子路径下,可以通过设置属性改变Set-Cookie响应头是服务器返回的响应头用来在浏览器种cookie,一旦被种下,当浏览器访问符合条件的url地址时,会自动带上这个cookie
参数:Expires=<date> -> cookie最长有效时间;Secure -> 一个带有安全属性的 cookie 只有在请求使用SSL和HTTPS协议的时候才会被发送到服务器。; …
123456# login,输入表单正确 obj = redirect('/classes/') # 根本上还是=HttpResponse对象 obj.set_signed_cookie('ticket& ...
「Django」4-Bootstrap运用
0. 引入首先引入Bootstrap:
1<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css">
重申,因为Django是根据路由寻找文件而非路径寻找,因此在settings中的STATIC_URL是:
1234STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static_file'),)
若引入时选择了文件夹名static_file就会报错。
1. Bootstrap使用
样式:Bootstrap封装好了前端美化样式。在官网上寻找样式,添加对应的class名称或内容即可。就是一个看图拷贝。
响应式:即页面布局根据窗口像素宽窄变化。这种是通过css的@media关键字实现:(导航条、栅格系统)
123456789<style>@media (max-width:800px) { ...
「Django」3-Ajax的运用
如果使用模态对话框实现增删改查,一旦提交Form表单,页面就会刷新。而使用Ajax可以将表单内容发到后台而页面不刷新。
实现:( by jQuery)
12345678910111213$.ajax({ url: '要提交的网址', type: 'POST' // 或GET data: {'k1': 'v1','k2':'v2'}, // 提交的数据 dataType: 'JSON', // 相当于JSON.parse(字符串) traditional: true, // 传输数据有列表,需要加上,但不支持字典,需要对字典进行 stringify success: function(data) { // 当前服务端处理完毕后,自动执行的回调函数 // data为返回的数据 // JSON.parse(字符串) --> 对象 ...
「Django」2-实现增删改查
1. 查看班级列表 && 添加班级根据“高内聚低耦合”原则,我们把url对应的函数放到单独的模块中(app1\views.py)
那么在urls.py中的路由便这样实现:
1234567891011# ... #from app1 import viewsurlpatterns = [ # path('admin/', admin.site.urls), path('login/', views.login), path('index/', views.index), path('classes/', views.classes), path('add_class/', views.add_class),]
我们先在mysql数据库”DjangoTestDB”中创建好班级对应数据表”classes”:
1234mysql> create table classes( -> id int unsigned not null ...
pymysql
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库
数据库连接1234567891011121314# 链接 Mysql 的 TESTDB 数据库:import pymysql# 打开数据库连接db = pymysql.connect("localhost","root","010616dhy","testDB")# 用cursor()方法创建游标对象cursor = db.cursor()# 用execute()执行SQL查询cursor.execute("SELECT VERSION()")# fetchone()获取单条数据data = cursor.fetchone()print("Database version : %s " % data)db.close()
插入12345678910111213141516...sql_insert = '''insert into employee(F ...
MYSQL基础
1. MySQL 简介
Mysql是最流行的RDBMS(Relational Database Management System:关系数据库管理系统),特别是在WEB应用方面。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。‘
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
RDBMS,关系数据库管理系统的特点:
数据以表格的形式出现
每行为各种记录名称
每列为记录名称所对应的数据域
许多的行和列组成一张表单
若干的表单组成database
一些术语:
12345678910数据库: 数据库是一些关联表的集合。数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。主键:主键是唯一的。一个数据表中只能包含一 ...
「Django」1:建立项目
1. 建立虚拟环境虚拟环境是系统的一个位置,可以在其中安装包,并将其与其他Python包隔离。将项目的库与其他项目分离是有益的,且为了后续将项目部署到服务器,这也是必须的。
1$ python -m venv ll_env
运行了模块venv,并使用它来创建一个名为ll_env的虚拟环境。建立虚拟环境后,需要使用下面的命令激活它:
1$ ll_env\Scripts\activate
这个命令运行ll_env/bin中的脚本activate。环境处于活动状态时,环境名将包含在括号内。在这种情况下,你可以在环境中安装包,并使用已安装的包。你在ll_env中安装的包仅在该环境处于活动状态时才可用。
要停止使用虚拟环境,可执行命令deactivate:
12(ll_env)learning_log$ deactivatelearning_log$
或关闭运行虚拟环境的终端,虚拟环境也将不再处于活动状态。
创建并激活虚拟环境后,就可安装Django了:
1(ll_env)learning_log$ pip install Django
2. Django中创建项目创建一个名为mysi ...
「Django」0-Web框架本质
Web应用流程1. 协议TCP:不断开
Http:无状态、短连接(因此Web应用绝大多数都是Http协议)
请求:
请求头 + \r\n\r\n + 请求体
响应:
响应头 + \r\n\r\n + 响应体(浏览器渲染)
2. 客户端与服务端浏览器(socket客户端)
输入url,DNS解析获得对应域名(ping www.cnblogs.com可以获得对应ip)
sk.socket()
sk.connect((ip,端口))
sk.send("我想要...")
接收服务器数据
连接断开
网站(socket服务端)
监听ip和端口(
while True:
用户 = 等待用户连接
3. 收到我想要...
4. 响应(根据不同url响应不同的函数<即路由系统>,通过模板引擎渲染,将h ...
5. node.js
在2009年,Ryan正式推出了基于JavaScript语言和V8引擎的开源Web服务器项目,命名为Node.js。
在Node上运行的JavaScript相比其他后端开发语言有何优势?
最大的优势是借助JavaScript天生的事件驱动机制加V8高性能引擎,使编写高性能Web服务轻而易举。
编写node程序我们编写的JavaScript代码将不能在浏览器环境中执行了,而是在Node环境中执行
1C:\Users\86178\Desktop\Study\html+css+js_code>node hello.js
在命令行模式下,可以执行node进入Node交互式环境
看到>是在Node交互式环境下,按两次ctrl + c退出。在Node交互式环境下,我们可以输入JavaScript代码并立刻执行。如果在.js的文件中,想看到结果就要用console.log()打印出来。
可以给Nodejs传递一个参数,让Node直接为所有js文件开启严格模式:node --use_strict calc.js后续代码,如无特殊说明,我们都会直接给Node传递--use_strict参数 ...