• python-pycharm-django


    创建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

    ##面向对象

    • 面向对象基本特征(封装,继承,抽象,多态)(了解)
    • 类Class和实例Instance
      • 类是抽象的模板
      • 实例是根据类创建出来的一个个具体的“对象“
      • 类的定义:通过 class 关键字
      • 实例: 根据类创建
    • 函数
      • 用来实现某个功能的,可重复使用的代码块
      • 内建函数
      • 自定义函数:
        • 函数代码块以 def 关键词开头,后接函数标识符名称 和 圆括号 ()
        • 传入参数和自变量必须放在圆括号中间
        • 内容以冒号起始,并且缩进
        • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
        • 一般格式:def 函数名(参数列表): 函数体
        • 调用

    六个标准的数据类型

    不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

    可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

    • 数字(Number),数字数据类型用于存储数值

      • 整型
      • 浮点型
      • 复数(不管)
      • 类型转换
    • 字符串(String)

      • 定义
      • 格式化 :% 运算符
      • 长度:len(str)
      • 常用函数:注意返回值
        • 是否以字符串str1开头:str.startswith('str1'),
        • 字符串拼接,
        • 是否包含特定字符:find()
        • 字符串分割: split
    • 列表List

      • 定义
      • 常用操作:
        • 访问或更新列表中的值(索引)
        • 添加元素: append() 在末尾添加新的对象
        • 插入元素:指定索引 insert(index,obj)
        • 删除元素(按索引) del list[index]
        • 长度
        • 元素是否存在于列表中
        • 迭代 (循环)
    • 元组Tuple(了解)

    • 字典Dictionary

      • 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式:d = {key1 : value1, key2 : value2 }
      • 键必须是唯一,不可变的,如字符串,数字或元组;
      • 值则不必:可以取任何数据类型,
      • 常用操作:
        • 访问字典元素
        • 清空字典
        • 判断某键值是否存在于该字典中:key in dict
        • dic.keys(); dic.values() 返回字典的键/值 列表
        • dic.items() 列表返回可遍历的(键, 值) 元组数组
    • 集合Set(了解)

      • 一个无序不重复元素的序列
      • 使用set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
      • 常用操作:添加add(),取长度,清空,判断元素是否存在

    七种运算符

    • 算术运算符
    • 比较运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算符(不搞)
    • 成员运算符
    • 身份运算符(了解)

    条件控制

    • if elif else

    循环,迭代

    • for item in data:

    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文件, 要注意路径比如'templatespollsindex.html', 参数就要写‘pollsindex.html’
              • 参数 context: 要传入上下文中用于渲染呈现的数据, 默认是一个字典格式,键即下文html模板中需要被替换的元素,键值即在views视图函数中需要传到html模板中变量需要替换成的值。
              • 模板文件中接收传入的context:使用jinja2语言 {{data}}
            • 返回重定向 redirect
        • 用户自定义函数: 一般封装了视图函数需要调用的某个功能

    Html基础

    标签 :由尖括号包围的关键词,是成对出现的,第一个标签是开始标签,第二个标签是结束标签

    • head标签:网页标题(css和js文件引入,自定义样式和js函数)
    • body标签内显示的是网页内容
    • 我们关注的标签:
      1. input输入框: 通过id查找到该标签,通过name属性进行前后台数据交互
      2. 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

    函数&方法 : 小写+下划线

    变量 : 小写,由下划线连接各个单词

     


    代码规范

    1. 编码
      • 文件一律使用UTF-8编码
      • 文件头部必须加入#--coding:utf-8--标识
    2. 代码格式
      1. 缩进
        • 统一使用 4 个空格进行缩进
      2. 代码里 多数应该使用 单引号
      3. 文档字符串 (docstring) 使用三个双引号 """......"""
    3. 注释
      1. 在代码的关键部分(或比较复杂的地方), 能写注释的要尽量写注释
      2. 文档注释以 """ 开头和结尾, 首行不换行, 如有多行, 末行必需换行,

    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 自动导入包
    

    #end

    作业

    用户登陆功能实现

    1. 创建一个django项目,运行该项目并访问项目主页
    2. 根据视图关系映射,实现功能
      1. 定义用户登陆视图函数,返回用户登陆页面(配置函数与url对应)
      2. 创建用户登陆页面,在页面中添加用户登陆表单,参1:用户名,参2:密码
      3. 定义提交表单动作(执行某函数,并接收页面传递过来的用户名密码)
      4. 在提交表单动作中判断用户名为abc且密码为123时返回登陆成功页面,否则返回登陆失败页面

    新闻头条展示(JSON解析学习)

     

    json怎么用
    • JSON 是轻量级的文本数据交换格式,对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用
    • JSON 语法规则:
      • 数据保存在键/值对中
      • 数据由逗号分隔
      • 大括号保存对象
      • 中括号保存数组
    • JSON 对象在大括号({})中书写:对象可以包含多个名称/值对:
    • 使用点号(.)或者中括号([])来访问对象的值
    • 使用for-in循环,获取对象的属性
    • 使用json.loads(str)来解析json字符串
    • 使用json.dumps(data)进行对象序列化,便于页面取值
    python第三方HTTP请求库requests的使用
    • requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多
    • 使用pycharm安装requests库
    • 访问http://docs.python-requests.org/zh_CN/latest/user/quickstart.html查看如何发送一个简单的请求;如何在请求中传递参数
    • 查看如何获取请求的返回值,正确编码返回的数据
    基于用户登陆功能,成功则展示新闻头条,失败则重定向到登陆页面

    #####后台部分

    1. 访问聚合数据官网:https://www.juhe.cn/
    2. 找到免费数据接口-新闻头条,查看API接口地址,请求方式,请求参数
    3. 使用提供的API接口测试工具进行测试,查看返回的数据类型及数据格式
    4. 使用requests库,请求该新闻头条接口
    5. 接收返回的数据,查看返回的数据格式
    6. 获取所需要的数据,并使用json解析该数据
    7. 定义一个data_list数组,用来保存我们需要的数据
    8. 使用for -in循环,遍历该json解析后的数据,取出我们需要的数据title,date,url,thumbnail_pic_s,并保存到data_list中
    9. 将组装好的数据重新序列化并返回给成功页面 #####前端页面部分
    10. 使用模板语言接收后台返回的HttpResponse

     

     

    从数据库获取数据

     

    安装MySQL数据库
    1. 将MySQL数据库安装到本地,记住mysql用户名和密码
    2. 使用导航猫测试是否能成功连接数据库
    在django项目中使用数据库
    1. 修改settings配置数据源为本地数据库

    2. 使用django自带的数据库管理类from django.db import connection

    3. 执行sql语句获取查询结果

       with connection.cursor() as cursor:
       	cursor.execute(sql)
       	data = cursor.fetchall()
  • 相关阅读:
    HDFS数据流——读数据流程
    HDFS网络拓扑概念及机架感知(副本节点选择)
    HDFS数据流——写数据流程
    HDFS基本概念
    Hadoop运行模式:本地模式、伪分布模式、完全分布模式
    Java枚举enum关键字
    Java内部类
    Eclipse常用快捷键
    Linux中Mysql安装卸载
    服务器同时运行两个项目
  • 原文地址:https://www.cnblogs.com/lxgbky/p/13359066.html
Copyright © 2020-2023  润新知