前台:判断用户输入 ,确认密码,手机号, 一切通过后向后台发送请求, 请求方式:post 在 suers 应用下的视图中: 1,创建个类, 2,创建 GET 方法,宣言页面 3,创建  POST 方法, 4,获取前台传来的参数 , 5,校验参数, 6,保存用户注册信息到数据库, 7,返回结果给前台, 用 form 表单校验参数,在 users 应用中创建 forMs.py 文件,导入 django 中的 form 进行数据校验 手机号校验: 判断短信验证:要导入  from django_red…
添加新闻评论功能 1.分析 业务处理流程: 判断前端传的新闻id是否为空,是否为整数.是否不存在 判断评论的内容是否为空 判断是否有父评论,父评论的id是否与新闻id匹配 判断用户是否登录 保存新闻评论 请求方法:POST url定义:'/news/<int:news_id>/comments/' 请求参数:url路径参数 参数 类型 前端是否必须传 描述 news_id 整数 是 新闻id content 字符串 是 新闻评论内容 parent_id 整数 否 父评论id 添加新闻评论功能是…
docker 实例 :wq!保存退出 放入一个 html 文件 权限不够,加 sudo 查看本地仓库的 image 运行 docker -- name,后跟个运行名, -p 物理机端口映射到容器端口, -d 后台运行,后跟创建的 docker 名 访问网址 查看容器 删除 一个容器 rm 跟 id 查看 进入一个正在运行的 docker  中用 exec -it exit  退出 停止 一.文档下载功能 1.分析 业务处理流程: 判断前端传的文件id是否为空,对应的文件是否存在 请求方法:GET…
后端功能实现 文件,类,字段,命名不要改动, 在apps/news/search_indexes.py中创建如下类:(名称固定为search_indexes.py) # -*-# -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 2018/10/12 0012 8:47 from haystack import indexes # from haystack import site from .models import News class NewsIndex(in…
官方文档: https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository 1,更新下sudo apt-get update 2,安装包以允许apt通过HTTPS使用存储库: sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common 3,添加Docker的官方GPG密钥:…
加载新闻评论功能 1.分析 业务处理流程: 判断前端传的新闻id是否为空,是否为整数.是否不存在 请求方法:GET url定义:'/news/<int:news_id>' 请求参数:url路径参数 参数 类型 前端是否必须传 描述 news_id 整数 是 新闻id 新闻详情页直接通过模版渲染的方式来实现,在新闻详情页直接渲染此新闻的评论信息. 后台代码:从数据库中取出评论,跟在新闻详情页后直接渲染, 所需要的字段:评论 id, 评论内容,评论者,评论时间 , 父级评论:同上字段 给数据库添加…
新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 let $newsLi = $(".news-nav ul li"); let iPage = 1; //默认第1页 let iTotalPage = 1; //默认总页数为1 let sCurrentTagId = 0; //默认分类标签为0 let bIsLoadData = true;…
-数据库模型设计 : 文章:新闻表: 字段:图片,标题,摘要,类型,作者,创建时间 标签表 评论表, 轮播图:外键,指向文章的外键表 在 utls 目录下创建 models.py  把其它模型常用的字段写在这,要用时继承它就呆以, is_delete 默认为  False , 在 apps/news的 models.py  中创建新闻模型 创建的类中,继承 utils 里边的 models 的模型 数据库迁移 makemigrations 在库中导入测试数据: 在 nwes 的视图文件中,创建…
在静态文件 js/user上当下,的 auth.js 文件中 $(function () { let $username = $('#user_name'); // 选择id为user_name的网页元素,需要定义一个id为user_name let $img = $(".form-item .captcha-graph-img img"); // 获取图像标签 let sImageCodeId = ""; // 定义图像验证码ID值 let $mobile = $…
在线课堂 一.数据库模型设计 # 在apps/course/models.py中定义如下模型: from django.db import models from utils.models import ModelBase class Teacher(ModelBase): name = models.CharField(max_length=150, verbose_name="讲师姓名", help_text='讲师姓名') positional_title = models.Ch…
把 视图传到前台的  JsonResponse(data=data) 先进行处理,之后再传到前台, 处理:引用自定义错误代码,把错误代码返回给前台,前台根据错误代码中文提示 class Code: OK = "0" DBERR = "4001" NODATA = "4002" DATAEXIST = "4003" DATAERR = "4004" METHERR = "4005" SMS…
在视图中创建个类,要实现此功能,并把结果返回前台 , from django.shortcuts import render from django.views import View from django.db.models import Count # django自带的计算 from ..news import models # 导入相关数据库 from utils.json_fun import to_json_data from utils.res_code import Code,…
用户的展示,编辑,删除, 把用户显示出来,用户名,员工(是,否), 超级用户(是, 否) 活跃状态,(非活跃示为删除) 在前台要显示该用户所属的用户组,在前台代码中是调用类的属性,所以在 user 的数据库模型中要定义个方法,取出这个用户的用户组, 在 uset 的数据库表中定义取出用户组的方法: 删除 user_instance.groups.clear() # 清除用户组user_instance.user_permissions.clear() # 清除用户权限user_instance.…
运行多个Tornado实例 网页响应不是特别的计算密集型处理 多个实例充分利用 CPU 多端口怎么处理 Linux 常见应用服务配置模式 nginx 和 supervisord:采用主配置文件 + 项目配置文件 使用Supervisor监控Tornado进程 安装(如果用pip安装注意看是否需要指定使用python2版本) supervisor 默认只支持 Python2 sudo apt-get install supervisor 或者 激活 Python3 的 virtualenv 后执行…
中间件 在项目主目录下的配置文件 在项目主目录下创建文件 写个自定义异常处理 方法1 要让其生效,要在主目录下,的中间件中进行注册 主目录下.该文件名.类名 在进入视图函数之前进行判断,  给 request 添加属性 方法2 同样要在配置文件中进行注册 测试该中间件是否生效,在视图函数中打印下, 上下文处理器 在主目录的配置文件中 在上下文处理器中传进来的,可以不经过视图,直接在前台模板中调用 , 如:在 html 文件中直接调用 request 就呆以在页面上显示: 自定义一个上下文处理器,…
PyExecJs使用 PyExecJS是Ruby的ExecJS移植到Python的一个执行JS代码的库. 安装 pip install PyExecJS 例子 >>> import execjs >>> execjs.eval("'red yellow blue'.split(' ')") ['red', 'yellow', 'blue'] >>> ctx = execjs.compile(""" ..…
为上次代码添加 模拟人操作 的鼠标的移动轨迹 # -*- coding:utf-8 -*- # 斌彬电脑 # @Time : 2018/9/14 0014 上午 8:08 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.chrome.options import Options from selenium.webdriv…
一.分析静态页面   1.静态vs动态 条目 静态页面 动态页面 网站内容 固定不变 经常变动 浏览器加载速度 更快(无需向服务器发起请求) 更慢 改变网站内容 很难(修改或者创建新的html页面) 简单(数据库中添加数据即可) url文件拓展 .htm..html .php..asp..jsp..py 创建语言 HTML PHP.Java.Python   2.本次项目页面分析   a.本项目由5个模块组成分别为:news.course.doc.users.admin   b.在项目根目录下创…
index.html 首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="css/reset.css"> <!--引入本地--> <link rel…
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet&quo…
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet&quo…
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet&quo…
类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类里定义的变量 是 属性 print( Abc.cls_name ) Abc.binbin = '正在25班教室' # 可以通过 类名.属性名 = 属性值 给类添加属性 print( Abc.binbin ) ------>>>>> 这个类的名字是Abc 正在25班教室 类是一个独…
今天完成的是用户注册功能... 首先把注册页面的前端文件register.html复制到templates目录下 编辑users.views.py,创建一个注册的类 class RegisterView(View): def get(self, request): return render(request, 'register.html', {}) 配置注册页面的url ... from users.views import LoginView, RegisterView urlpattern…
BBS项目分布搭建五(评论相关) 1. 根评论逻辑实现 # 在models.py文件中 修改: # 7. 评论表 parent = models.ForeignKey(to='self', null=True) # 添加路由(最好放在文章详情之上): # 评论功能 url(r'^comment/', views.comment), # 在views.py中 添加功能: # 10. 评论功能 def comment(request): if request.is_ajax() and reques…
从讲项目开始,查找错误,完善笔记,尽可能 翻译没一句代码(以后台为主), 本项目亮点,也是重点 Django ORM中对数据查询的优化(only.defer.select_related) redis缓存短信验证码.图片验证码.用户session 使用docker容器搭建数据集群负载均衡.读写分离 使用django缓存机制 User模型的拓展 数据库的设计能力 数据库的多表关联设计 数据库更新的优化 django信号机制使用 使用celery发送手机短信 自定义用户.用户组以及权限的管理 使用d…
项目部署 稳定,并发,效益, 一.Django配置 1.settings.py配置 复制全局settings.py配置文件,创建一个副本命名为MyBlog/pro_settings.py,修改DEBUG为False. DEBUG = False 将不再提供静态文件服务 # 填写你自己的ip和域名ALLOWED_HOSTS = ["www.youkou.site", "39.108.191.165", "localhost", "127.…
新闻列表页功能 1.分析 业务处理流程: 判断前端传的标签分类id是否为空,是否为整数.是否超过范围 判断前端传的当前文章页数是否为空,是否为整数.是否超过范围 请求方法:GET url定义:/news/ 请求参数:url路径参数 参数 类型 前端是否必须传 描述 tag_id 整数 是 标签分类id page 整数 是 当前文章页数 向前端返回的数据格式为json格式,返回实例如下: { "data": { "total_pages": 61, "new…
u胎代码实现 : 针对每一个 app 写个 js 脚本, 先给 users 的 app 应用创建个 js:在指定目录下的 js 文件夹下,创建 users 文件夹,下创建 suth.js ,图片验证 // 预加载,html 加载完后再加载 , $(function () { let $img = $(".form-item.captcha-graph-img img"); //获取图像标签元素 let sImageCodeId = "" // uuid (小写 s…