建立app (添加到installed apps)
python manage.py startapp test_worm
依赖文件生成
pip freeze > requirements.txt
依赖文件安装
pip install -r requirements.txt
添加静态资源,在settings.py中最后一行添加
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) # 开发时建立的静态目录
建立表
python manage.py makemigrations
python manage.py migrate
对queryset进行序列化
from django.core import serializers
serializers.serialize('json', queryset)
开启项目远程访问
1 开启mysql数据库远程访问:
新建查询
mysql> use mysql;
Database changed
mysql> grant all privileges on *.* to root@'%' identified by "root";
2 让别人经过IP访问个人电脑(服务器必须开启):
在settings.py中加入 ALLOWED_HOSTS = ['*'] # 个人电脑的ip地址
数据库改成宿主数据库地址 'HOST': '192.168.16.198',
3 找到项目中manage.py的位置,打开命令行运行如下命令
python manage.py runserver 0.0.0.0:8000
##面向对象css
- 面向对象基本特征(封装,继承,抽象,多态)(了解)
- 类Class和实例Instance
- 类是抽象的模板
- 实例是根据类建立出来的一个个具体的“对象“
- 类的定义:经过 class 关键字
- 实例: 根据类建立
- 函数
- 用来实现某个功能的,可重复使用的代码块
- 内建函数
- 自定义函数:
- 函数代码块以 def 关键词开头,后接函数标识符名称 和 圆括号 ()
- 传入参数和自变量必须放在圆括号中间
- 内容以冒号起始,而且缩进
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return至关于返回 None。
- 通常格式:
def 函数名(参数列表): 函数体
- 调用
六个标准的数据类型
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
七种运算符
- 算术运算符
- 比较运算符
- 赋值运算符
- 逻辑运算符
- 位运算符(不搞)
- 成员运算符
- 身份运算符(了解)
条件控制
循环,迭代
Django web 基础
django web应用目录结构
- manage.py : 运行django项目并用于管理任务的命令行工具
- static 目录:存放app运行所需的静态文件,通常为js和css,须要本身手动建立,并加载到settings.py配置中
- templates 目录: 存放app运行所需的html页面
- 项目名称下 子文件:
- _init.py 无论
- settings.py :配置项目运行所需的环境,如 数据源,日志,缓存等
- urls.py : 与app目录下views.py造成 视图函数与URL路由绑定
- app名称下 子文件:
- models.py: 存放自定义模型类(与数据库造成orm对象关系映射)
- views.py:
- 定义视图函数,并与项目下urls.py中的url路由进行绑定
- 全部的views函数都须要以request对象做为第一个参数,request表明客户端浏览器向服务器请求的一个信息字符串, views中的函数须要接收这个字符串才行对他进行处理。
- 视图函数返回值类型:
- 返回一个字符串: 调用 HttpResponse()函数
- 返回一个网页: 调用render函数,返回一个html模板文件(接收到一个请求,而后指定好一个html模板,并把上下文context字典中的内容, 加载进templates_name中指定的模板文件, 并经过浏览器渲染呈现.)
- 参数request: 是一个固定参数, 就是指经过接受到的经过wsgi处理过的客户端浏览器请求数
- 参数template_name:templates中定义的HTML文件, 要注意路径好比'templates\polls\index.html', 参数就要写‘polls\index.html’
- 参数 context: 要传入上下文中用于渲染呈现的数据, 默认是一个字典格式,键即下文html模板中须要被替换的元素,键值即在views视图函数中须要传到html模板中变量须要替换成的值。
- 模板文件中接收传入的context:使用jinja2语言 {{data}}
- 返回重定向 redirect
- 用户自定义函数: 通常封装了视图函数须要调用的某个功能
Html基础
标签 :由尖括号包围的关键词,是成对出现的,第一个标签是开始标签,第二个标签是结束标签
- head标签:网页标题(css和js文件引入,自定义样式和js函数)
- body标签内显示的是网页内容
- 咱们关注的标签:
- input输入框: 经过id查找到该标签,经过name属性进行先后台数据交互
- form表单:经过method指定数据提交方式,经过action指定提交数据的url,经过类型为submit的按钮指定提交请求事件。
- form表单提交请求的类型:GET和POST,区别,用法
- 样式: 网页显示的效果
- 事件:经过自定义jquery js实现触发
- 前端框架:已经定义好了样式和js事件,用户可选择性调用(需提早引入要用到的css和js文件)
ajax数据交互
- 按钮点击事件执行自定义js函数,在函数体中进行请求参数获取
- 经常使用写法
- $.ajax({ type: "post", async: true, //异步请求(同步请求将会锁住浏览器,用户其余操做必须等待请求完成才能够执行) url: url, //对应urls.py中的url data: {"data": data}, //请求的参数 dataType: "json", //返回数据形式为json success: function (result) { //请求成功,获取到的数据在result中 }, error: function (errorMsg) { //请求失败时执行该函数 } });
总结
通常开发流程
页面ajax请求 --> 后台接收request请求-->获取请求附带参数 --> 将参数做为查询条件请求数据库获取数据-->
数据预处理(重中之重)--> json序列化并返回处理后的数据 -->
ajax请求成功获取result --> 数据解析并渲染页面
数据预处理:
经过循环迭代,将数据库中取出的queryset数据集改形成咱们须要的形式
页面接收数据并解析:
将接收到的数据,经过循环迭代,加载到页面上
核心: 数据的处理(流程把握,总体思路)
命名规范(约定) :不使用保留字和关键字
原则:见名知意
文件名 :小写 + 下划线
类名 : 老是使用首字母大写单词串。如MyClass
函数&方法 : 小写+下划线
变量 : 小写,由下划线链接各个单词
代码规范
- 编码
- 文件一概使用UTF-8编码
- 文件头部必须加入#--coding:utf-8--标识
- 代码格式
- 缩进
- 代码里 多数应该使用 单引号
- 文档字符串 (docstring) 使用三个双引号 """......"""
- 注释
- 在代码的关键部分(或比较复杂的地方), 能写注释的要尽可能写注释
- 文档注释以 """ 开头和结尾, 首行不换行, 若有多行, 末行必需换行,
Pycharm使用
基本使用:
1. 建立项目:选择解释器project interpreter-选择existing interpreter,点击右边的省略号-选择system interpreter
2. 使用4个空格的tab: 选择file->settings->editor->code style ->选择Python,取消勾选use tab character
3. 取消拼写检查: file->default settings->editor->inspections->spelling取消勾选,python下的pep8取消勾选
4. 代码自动提示 :打开设置,搜索code completion
经常使用快捷键:
1. ctrl +alt + L 自动格式化代码
2. ctrl +alt + 空格 自动提示代码,查看函数注释信息
3. Ctrl + P 查看参数信息(在方法中调用参数)
4. alt + enter 自动导入包
#endgithub
做业
用户登录功能实现
- 建立一个django项目,运行该项目并访问项目主页
- 根据视图关系映射,实现功能
- 定义用户登录视图函数,返回用户登录页面(配置函数与url对应)
- 建立用户登录页面,在页面中添加用户登录表单,参1:用户名,参2:密码
- 定义提交表单动做(执行某函数,并接收页面传递过来的用户名密码)
- 在提交表单动做中判断用户名为abc且密码为123时返回登录成功页面,不然返回登录失败页面
新闻头条展现(JSON解析学习)
json怎么用
- JSON 是轻量级的文本数据交换格式,对于 AJAX 应用程序来讲,JSON 比 XML 更快更易使用
- JSON 语法规则:
- 数据保存在键/值对中
- 数据由逗号分隔
- 大括号保存对象
- 中括号保存数组
- JSON 对象在大括号({})中书写:对象能够包含多个名称/值对:
- 使用点号(.)或者中括号([])来访问对象的值
- 使用for-in循环,获取对象的属性
- 使用json.loads(str)来解析json字符串
- 使用json.dumps(data)进行对象序列化,便于页面取值
python第三方HTTP请求库requests的使用
基于用户登录功能,成功则展现新闻头条,失败则重定向到登录页面
#####后台部分web
- 访问聚合数据官网:https://www.juhe.cn/
- 找到免费数据接口-新闻头条,查看API接口地址,请求方式,请求参数
- 使用提供的API接口测试工具进行测试,查看返回的数据类型及数据格式
- 使用requests库,请求该新闻头条接口
- 接收返回的数据,查看返回的数据格式
- 获取所须要的数据,并使用json解析该数据
- 定义一个data_list数组,用来保存咱们须要的数据
- 使用for -in循环,遍历该json解析后的数据,取出咱们须要的数据title,date,url,thumbnail_pic_s,并保存到data_list中
- 将组装好的数据从新序列化并返回给成功页面 #####前端页面部分
- 使用模板语言接收后台返回的HttpResponse
从数据库获取数据
安装MySQL数据库
- 将MySQL数据库安装到本地,记住mysql用户名和密码
- 使用导航猫测试是否能成功链接数据库
在django项目中使用数据库
-
修改settings配置数据源为本地数据库ajax
-
使用django自带的数据库管理类from django.db import connection
-
执行sql语句获取查询结果
with connection.cursor() as cursor:
cursor.execute(sql)
data = cursor.fetchall()