Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 508|回复: 0

python基础-requests模块、异常处理、Django部署、内置函数、网络编程

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-6-23 16:31:37 | 显示全部楼层 |阅读模式

     网络编程

     

    urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应。

     

    校验返回值,进行接口测试:

    编码:把一个Python对象编码转换成Json字符串   json.dumps()

    解码:把Json格式字符串解码转换成Python对象   json.loads()

     

     

    Post请求:

    urllib库里面有个urlencode函数,可以把key-value这样的键值对转换成我们想要的格式。

     

     

    requests模块

    urllib模块是python自带的网页模块,但是并不好用,好用的是requests模块

    requests.get(url,params=data) get请求,返回的可以是字典也可以是json串

    requests.post(url,data)post请求,返回的可以是字典也可以是json串

    requests.get/post(..cookies=)请求加cookie,注意cookie是字典,不是字符串

    requests.get/post(..headers=)请求加header

     

    requests.post(..files=)上传文件,注意excel和图片需要用‘rb’

    request.get(url) .content下载文件,二进制文件要用‘wb’

     

     

    异常处理

    程序一旦报错,就会中止运行,不够人性化,希望有问题的部分可以给出提示,没有问题的部分可以正常运行,可以用if做判断,但会导致代码不易读

    try:检查哪些代码会产生异常,后面跟except来捕获异常,如果没有捕捉到异常,程序还是会报错

    except 某类异常 as e:如果try中发生该类异常,则执行。一个try可以写多个except,用来捕捉多类异常。如果想捕捉全部异常,用except Exception as e

     

    finally:不管try中是否发生异常,都会执行

     

     

     

    Django部署

    安装django模块:

    打开cmd执行以下命令

    pip install django==1.9

    django-admin startproject my_django

    打开pycharm,新建一个项目

    把源代码覆盖到这个项目

    安装mysql  MySQL Server 5.7:

    打开或新建mysql路径\my.ini,输入以下内容保存

    [mysqld]

    basedir=mysql路径

    datadir=mysql路径\data

    port=3308

    mysql路径下打开cmd执行以下命令

    mysqld --install MYSQL_NEW --defaults-file= mysql路径\my.ini

    net start MYSQL_NEW

    连接数据库,新建一个main数据库

    并执行main.sql初始化数据库表

    安装redis  Redis-x64-3.2.100:

    打开redis.windows.conf查找requirepass foobared,在下一行加requirepass 你的密码

    Redis路径下打开cmd执行以下命令

    redis-server redis.windows.conf

    启动服务:

    项目路径下打开cmd,执行以下命令

    python manage.py runserver 0.0.0.0:8000

    打开浏览器,输入地址

    FAQ

    django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([WinError 10061] 由于目标计算机积极拒绝,无法连接

    说明mysql服务没有启起来

    django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE7\\x94\\xA8\\xE6\\x88\\xB7...' for column 'name' at row 1")

    sql不能在pycharm里执行,要放到navicat里执行

    Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

    说明sql模式是only_full_group_by,但是写的sql中group by前面的字段不全

    解决办法两种:第一种sql不变,在my.ini加上

    [mysqld]

    sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

    第二种把sql里group by前面的字段补全,建议用第一种

     

     

    内置函数

    zip()函数:用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

    还可以搭配for循环使用:

    map()函数:Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

    两个参数一个是函数名,另一个是列表或元组。

    注意:map()函数不改变原有的 list,而是返回一个新的 list。

     

    filter()函数:用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

    和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-12-23 02:52 , Processed in 0.057863 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表