python问题随手记录20210313

1 a:visited的颜色

a:visited的颜色是以读取的浏览器访问记录为准,而不是重新打开该网页

    a:visited{
        color: violet;
    }/*注意:是否访问过,是以读取的浏览器访问记录为准,而不是重新打开该网页*/

2 CSS中,height:100%不起作用

参考文档
css如何让元素height:100%起效果
【CSS系列】height:100%设置div的高度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*通过设置div的所有父模块html body,使div中的height:100%起作用*/
        html, body {
            height: 100%; background: pink;
        }

        div{
            width: 100%;
            height: 100%;/*需要设置父模块的height:100,该语句才起作用*/
            background-image:url("https://img2.doubanio.com/view/photo/l/public/p2623217752.webp");
            border: 1px solid red;
            /* background-color: blue; */
            background-repeat: repeat-x;
        }

    </style>
</head>
<body>
    <div>

    </div>
</body>
</html>

3 Uncaught TypeError: Cannot read property ‘style’ of null at error.html:84

Uncaught TypeError: Cannot read property ‘style’ of null at error.html:84

4 PEP8格式的快捷键

等号的前后自动添加空格等格式化,这就是PEP8格式,快捷键为ctrl+alt+L。这是pycharm中的,不知道vscode有没有。
另一个方法:
Autopep8的使用(python自动编排工具

5 JavaScript的属性的赋值

<script>
    function showHidden(){
        con = document.getElementById('content')
        d = con.style.display
        console.log(d)
        if(d == 'block'){
            d= 'none';
        }
        else{
            d = 'block';
        }
    }
</script>

发现使用这种 d = con.style.display,当对d进行赋值的时候,无法成功。而只能直接对属性赋值。
con.style.display = ‘block’;

    <script>
        function showHidden(){
            con = document.getElementById('content')
            console.log(d)
            if(con.style.display == 'block'){
                con.style.display= 'none';
            }
            else{
                con.style.display = 'block';
            }
        }
    </script>

6 windows.close()失效

window.close()失效问题

7 浅析Js中${}字符串拼接

20210417的JS练习中,碰到了奇怪的东西 反引号(`) 和占位符 ${}。

           for (var i in res) {
                    // esc 下面的波浪线
                    html += `<li><a href="">${res[i]}</a></li>`
                }
                new_ul.innerHTML = html;

在这里插入图片描述
问题:
1)这个特殊引号`的写法是什么语法?
2)这里的字符串拼接${}是什么用法?
经过老师指点,才知道原来这是模块字符串的知识。

模板字符串使用反引号 () 来代替普通字符串中的用双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。占位符中的表达式和周围的文本会一起传递给一个默认函数,该函数负责将所有的部分连接起来,如果一个模板字符串由表达式开头,则该字符串被称为带标签的模板字符串,该表达式通常是一个函数,它会在模板字符串处理后被调用,在输出最终结果前,你都可以通过该函数来对模板字符串进行操作处理。在模版字符串内使用反引号(`)时,需要在它前面加转义符(\)。

参考文献

  1. 模块字符串
  2. 浅析Js中${}字符串拼接

同时,发现这个网站可能是个良心级的学习JavaScript的网站。JavaScript基础

8 python问题mycal调用后进入mycal/mycal

在这里插入图片描述
还没找到问题???

9 Django的安装与使用

参考文档

  1. Django教程
  2. Python Django框架基础教程(非常细)

9.1 安装(选择长期维护版本3.2.3):

pip3 install Django==3.2.3`

安装完毕,进入Python测试,import django看是否可以成功导入。

$ python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'3.2.3'
>>> 

9.2 创建Django项目。

安装完成后,进入终端,在工作目录下运行django-admin指令:

$:    django-admin startproject HelloWorld

9.3 启动Django服务

使用’python3 manage.py runserver’,启动Django服务

$ python3 manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
May 15, 2021 - 10:29:35
Django version 3.2.3, using settings 'mysite02.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

10 mysql的使用

输入“ mysql -u root -p”,然后输入密码。我的密码设的时123456

$ mysql -u root -p
Enter password: 

11 创建Django工程及对应mysql数据库的标准动作

11.1 创建工程,命名为mysite4_db

$ django-admin startproject mysite4

11.2 创建数据库,命名为mysite4_db

mysql> create database mysite4_db default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

11.3 建立Django和mysql数据库的联系

  1. 首先在mysite4/settings.py更改数据库配置
DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': BASE_DIR / 'db.sqlite3',
    # }
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite4_db',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'127.0.0.1',
        'PORT':3306
    }
}
  1. 在mysite4/mysite4/init.py增加对应模块
import pymysql

#让Django用pymysql对mysql进行操作
pymysql.install_as_MySQLdb()
  1. 建立对应的APP ,名称为bookstore
python3 manage.py startapp bookstore

或者从其他工程中将对应的APP文件夹直接拷贝过来。
4. 在mysite4/settings.py增加添加的APP

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'bookstore',
]
  1. 在models.py中建立对应的数据库结构

  2. 建立与数据库的转换文件,然后执行迁移。

python3 manage.py makemigrations
python3 manage.py migrate

12 Ubuntu下vscode对html的自动补全失效

不知道原因的情况下,突然某天vsocode下的html自动补全失效了。输入!不能再自动输入模板。
参考下面的文献解决。
VSCode配置html自动补全(语法提示)
不同的时我的vscode找不到json选项。通过Add item增加选项后解决问题。注意都是双引号格式。
在这里插入图片描述

13 Django路由中的绝对路径和相对路径

文件参/home/xxx/python_study/practice/day20210526

return HttpResponseRedirect('/bookstore/all')#重定向,自动跳转到其他页面。绝对路径。

‘/bookstore/all’这里开始的’/‘代表根路由,也就是绝对路径,对应的根地址为’http://127.0.0.1:8000’

如果没有’/‘代表相对路由,如果当前访问的地址是’http://127.0.0.1:8000/bookstore/mod/1’,则这里的1是当前的文件,当前文件地址为’http://127.0.0.1:8000/bookstore/mod/’,则直接将地址拼接为’http://127.0.0.1:8000/bookstore/mod/bookstore/all’,

return HttpResponseRedirect('bookstore/all')#相对路径

而HTML文件模板的路径也存在类似问题;由于我们已经在setting中启用了子应用的模板。所以这里的相对路径,是相对于当前子应用模板地址的路径。

    return render(request,'bookstore/list.html',locals())#相对路径,是相对于当前子应用模板地址的路径

14 Redis安装使用

14.1 安装

# 安装
sudo apt-get install redis-server

14.2 启动

$ redis-server -v
Redis server v=4.0.9 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=9435c3c2879311f3
$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> exit
$ sudo /etc/init.d/redis-server status
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-05-29 23:43:48 CST; 9min ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
 Main PID: 30676 (redis-server)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/redis-server.service
           └─30676 /usr/bin/redis-server 127.0.0.1:6379

127.0.0.1为本机地址,6379为端口号

14.3 退出及查看当前状态

127.0.0.1:6379> exit
$ sudo /etc/init.d/redis-server status
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2021-05-29 23:43:48 CST; 9min ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
 Main PID: 30676 (redis-server)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/redis-server.service
           └─30676 /usr/bin/redis-server 127.0.0.1:6379

15 ubuntu防火墙关闭

当Redis无法远程访问时,往往需要测试关闭Ubuntu服务器段和windows客户端的防火墙

$ sudo ufw staus #查看当前防火墙状态
$ sudo ufw disable #关闭防火墙

16 ubuntu从FTP或者其他windows平台下载的文件文件名称为乱码

Ubuntu解决跨平台中文文件名乱码
ubuntu里的文件名乱码问题
Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法
FileZilla中文乱码解决方法
查询了下,多半是因为其他平台如windows平台下的文件名称,有可能使用的编码格式与ubuntu不一致。
windows下,多半是GB编码,而ubuntu多半使用的是utf-8。需要使用工具convmv进行编码转换。感觉还是挺麻烦的,尤其是如果使用FileZilla下载时,如果文件名称看到的都是乱码,甚至无法下载,这个是最讨厌的。而这是convmv无法解决的。这个时候就要在FileZilla下进行编码的设置。将客户侧设置为GB格式。

17 ubuntu使用图形界面解压.zip的文件,解压后内部文件名称为乱码

通常都是用图形界面,进行.zip压缩文件解压。发现有的文件解压后,文件名称为乱码。
改为使用terminal下使用unzip指令,没有出现文件名称乱码,问题解决。

$ unzip day19-20.zip 

乱码原因分析:
中间尝试过使用convmv将解压出现的乱码目录,进行转换,提示“already UTF-8”,也就是说被图形界面解压后的文件名已经是utf-8。也就是说图形界面转换的过程出现了错误。

iceberg@iceberg-L14:~/python_study/waid2010/stage03/day19-20/day20$ convmv -f GBK -t UTF-8 --notest  -r *
Skipping, already UTF-8: ./╧ε─┐.assets
Skipping, already UTF-8: ./╧ε─┐.md
Ready! I converted 0 files in 0 seconds.

18 切换root用户

Linux 切换root用户

myroot@ubuntu:~$ sudo su

ctrl + d 退回到普通用户,或者直接输入"exit;"也可以。

19 让vi和vim显示行数

让vi和vim显示行数
临时显示,在命令行模式下,键入"set number";
永久显示,修改/etc/vim/vimrc,在文件的末尾增加"set number",即可。

$:/etc/vim# vim /etc/vim/vimrc

20 fake-usergent报错

fake-usergent报错一劳永逸解决办法
fake_useragent.json本地实例化

访问,将对应内容保存下来,存为当前目录下,命名为fake_useragent_0.1.11.json。。
然后使用时,在本地路径下实例化UserAgent()。

from fake_useragent import UserAgent
 
ua = UserAgent(path='./fake_useragent_0.1.11.json')
 
print(ua.chrome)

21 安装matplotlib报"Failed building wheel for pillow"

[Failed building wheel for pillow])(https://stackoverflow.com/questions/69624327/failed-building-wheel-for-pillow)

在使用“pip3 install matplotlib”,安装matplotlib时报错,错误信息较多,不过能明显的看到红色的错误是"Failed building wheel for pillow"。提示pillow的安装出现了问题。
在这里插入图片描述

查看上面的参考文档,原文中作者使用了指令

python -m pip install --upgrade pip
python -m pip install --upgrade pillow

并没有起作用。而对我的电脑,却是刚好解决了问题。注意因为我的电脑用的是python3,所以采用的指令是

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pillow

通过以上两句更新后,成功安装了matplotlib

在这里插入图片描述

22 cv2库的安装与使用(openCV)

参考文档

pip install opencv-python
pip install opencv-contrib-python

只安装第一个opencv-python,会出现import cv2虽然不报错,可也无法实现代码补全,切找不到部分子函数的问题。两个都安装以后,问题解决。

23 tensorflow安装

参考文档
AttributeError: module tensorflowhas no attribute placeholder
tensorflow去除告警信息Could not load dynamic library ‘libcudart.so.11.0’; dlerror: libcudart.so.11.0: c…

开始是使用的默认安装

pip3 install tensorflow

安装后,发现2.0以上版本的tensorflow,很多函数不兼容,如placeholder()已经被删除了。
改为安装1.x版本的tensorflow。同时使用国内的安装源,速度起飞。

pip3 uninstall tensorflow
pip3 install tensorflow==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/

另外我的电脑是集成显卡,所以没有GPU,安装的是CPU版本。但每次运行都报警告

2022-01-15 10:52:50.587554: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2022-01-15 10:52:50.587582: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

查了下警告,应该是和GPU、CUDA相关。既然对我没有影响,索性关闭该警告。“cuda只能在GPU版本tensorflow用”

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf

24 pip3更换国内安装源

参考文档

  1. pip3 更改安装源
  2. Python pip3可替换的国内源
  3. pip/pip3更换国内源
  4. pip3的国内安装源

原来以为更换了系统的安装源为国内源,就可以起到将pip指令的源也改到国内的作用。实际使用中并没这样。在章节23 tensorflow的安装中,通过使用-i临时替换为清华的源,速度直接起飞达到了9M/s,而国外默认的源,只有100~400k/s。

pip3 install tensorflow==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/

参考文档中,也提到了建议使用清华的源“比较顺手的是清华大学的pip源,它是官网pypi的镜像,每隔5分钟同步一次,”也就是说基本就是pip的官方拷贝。
查看参考文档,为了避免每次都需要使用-i 进行临时调用,建了配置文件
“方案二:修改配置文件 首先在当前用户目录下建立文件夹.pip,然后在文件夹中创建pip.conf文件,再将源地址加进去即可。”

mkdir ~/.pip
vim ~/.pip/pip.conf

将下面的内容,复制到pip.conf。这里的内容,是设置了超时和安装源。

[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

拷贝完毕,按ESC,输入wq,完成保存退出。
另外,有个疑问pip和pip3是否都是使用这一个配置文件呢,查了下参考文档,基本都是认为一样的,并未实测确认。
参考文档3中的说法“注意:不管你用的是pip3还是pip,方法都是一样的,都是创建pip文件夹。”

25 百度AI STUDIO 添加自己的数据集

参考文档

  1. 百度AI STUDIO 数据集加载,以及如何使用加载的数据集

先上传压缩文件,然后使用参考文档中的方法解压。免得逐个上传。
当然也可以在终端下执行"unzip"进行解压

26 JAVA的安装

Ubuntu安装JDK教程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值