大西洋暖流

一切都在不完美中前行


  • 首页

  • 关于

  • 标签

  • 归档

  • 搜索

macOS常用小技巧

发表于 2020-09-06 | 分类于 编程 | 阅读次数:
字数统计: 280 | 阅读时长 ≈ 1

这是一个长期更新帖,用来记录本人使用macOS遇到过的问题以及应对问题的方法,欢迎查看以及勘误。

软件安装

macOS安装Homebrew报错

问题:在macOS里输入命令直接安装Homebrew提示报错。

1
2
shawn@xiaochangdeMacBook-Pro ~ % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

原因:这是GitHub的raw.githubusercontent.com域名解析被污染所致

解决办法:修改hosts文件,使用IP地址读取文件内容

  1. 查询真实IP地址

在https://www.ipaddress.com/查询raw.githubusercontent.com的真实IP。

  1. 修改hosts

sudo vim /etc/hosts
添加如下内容:

199.232.68.133 raw.githubusercontent.com

  1. 在终端再次安装Homebrew可以成功

macOS安装IPython设置软连接

macOS使用pip3安装IPython成功后。
如果出现 ipython command not found,执行下面这条软连接命令即可。

ln -s /Library/Frameworks/Python.framework/Versions/3.6/bin/ipython /usr/local/bin/

网络使用

查看IP地址

macOS打开终端,使用如下命令可以查看本机IP地址。

1
ifconfig | grep "inet " | grep -v 127.0.0.1

VSCode DebuggerforChrome解决跨域问题

发表于 2020-04-21 | 分类于 编程 | 阅读次数:
字数统计: 976 | 阅读时长 ≈ 4

最近两次遇到跨域问题。

Safari浏览器默认设置跨域

第一个是运行Flask程序时,本地应用请求远程CDN服务器上的js脚本时,出现了跨域导致资源访问不成功,预期js脚本没有执行。

奇怪的是在Chrome里打开应用,不报错;在Safari里打开则存在跨域,如下所示。

(图1-Chrome打开不报错,moment-with-locales.min.js获取成功)

阅读全文 »

Flask常见问题总结

发表于 2020-04-13 | 分类于 编程 | 阅读次数:
字数统计: 3,207 | 阅读时长 ≈ 12

Flask Route机制

Flask框架比Django后出来,砍掉了很多Django框架中冗余的东西,增加了很多新特性解决了Django框架的痛点。比如一个视图函数中,要控制用户在浏览器里输入的id是一个数字,Django在视图函数中通常使用正则表达式进行过滤,如下所示:

1
2
3
urlpatterns = [
path('', views.index),
re_path('^users/(\d+)/$', views.users),

Flask则不需要这样,只需要在视图函数中使用converter类型的转换器来检查即可,如下所示:

1
2
3
4
@blue.route('/users/<int:id>/')
def users(id):
print('id:', id, type(id))
return 'users id valid'

为什么可以像上面这样呢,是因为Flask是基于Werkzurg的一个框架,Flask的Route在Werkzurg基础上进行了一层封装,继承了Werkzurg里的这种用法。这种机制叫做Converter ,可以通过特定的语法,将 URL中特定部分转化成对应的Python变量。

阅读全文 »

慢就是快

发表于 2020-04-06 | 分类于 扯淡 | 阅读次数:
字数统计: 1,375 | 阅读时长 ≈ 5

(Photo by Filip Bunkens on Unsplash)

下面这是春节返深后第一天,我总结假期期间学习的一些内容,当时写了想发出来,后来被耽误了就没发。

从1/24日到3/28,这是迄今为止在家时间待得最长的一个春节假期。2个月的时间里面,做了下面这些事情:

  1. 基于Python生态做了几十次standalone K8S和Docker-compose应用程序的开发和部署,期间遇到很多问题,解决一个冷不丁地又冒出来一个,这是软件开发这个行业的常态,各种细节问题层出不穷。

  2. 基于”未来的软件都将运行在容器里面”这个理念,花了2周左右时间学习Go语言,算基本入门吧,这门语言最大的优势是基于CSP模式在语法层面支持高并发,并且与容器技术紧密结合(Docker和K8S就是使用Go语言来构建),非常值得学习,今年会继续加强。

  3. 学习了Django开发,照着教程从0到1一行一行代码写了2个项目,基本可以独立担当Django主力开发角色,目前还差Django Restful Framework这一块,回去了马上补齐。

阅读全文 »

Django学习中遇到的问题

发表于 2020-03-26 | 分类于 编程 | 阅读次数:
字数统计: 597 | 阅读时长 ≈ 2

本文记录Django学习过程中遇到的奇怪问题。

settings.py设置DEBUG = False导致资源404

现象:

把project目录下settings.py文件中DEBUG设置为False,页面均可以访问,但加载css和js资源提示404。将DEBUG调为True,这些404就没有了。

原因:

关闭DEBUG模式后,Django不再提供静态文件服务。

解决:

  1. 在 python3 manage.py runserver 命令后添加 --insecure 选项使Django强制处理静态文件。

  2. 上面只是临时解决,如果采用其它方式启动服务,添加--insecure方法可能就不起作用,需要通过修改配置文件及url路由来彻底解决这个问题,步骤如下:

    a. 在settings.py文件中加上

    1
    2
    3
    4
    5
    # Setup `STATIC_ROOT` to collect all static resources from every applications
    STATIC_ROOT = os.path.join(BASE_DIR, 'blog/static')
    # Use `STATICFILES_DIRS` to store static resouces which are not used in applications, this can be not set
    STATICFILES_DIRS = [os.path.join(BASE_DIR, '/static/')]

b. 在project的urls.py文件中增加如下修改(实测在app的urls.py文件中增加如下修改也能起作用):

1
2
3
4
5
6
7
8
9
10
from django.urls import re_path
from django.views import static
from django.conf import settings
from django.conf.urls import url
urlpatterns = [
# Below 2 methods can both work
url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT }, name='static'),
# re_path('^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT }, name='static')
]

c. 执行python3 manage.py collectstatic收集静态资源文件

根据步骤a里STATIC_ROOT变量第二个参数的值决定是否执行python3 manage.py collectstatic将每一个项目里面使用的静态文件收集到STATIC_ROOT目录下

  1. 如果STATIC_ROOT变量的第二个参数如果填’static’,则需要执行python3 manage.py collectstatic,否则修改不生效;

    ‘collectstatic’命令执行成功后会在project目录下生成一个static文件夹,里面会存放admin及blog应用使用到的所有静态文件。

  2. 如果STATIC_ROOT变量第二个参数填’blog/static’(在我project下面应用程序名称是blog),不需要执行python3 manage.py collectstatic修改也能生效,但要注意不要把’blog/static’写成了’/blog/static’,否则修改不生效;

d. 特别说明

强烈建议使用步骤c中第一种方法,步骤c中方法二虽然可行,但是比较麻烦,如果project下有多个应用,就没办法配置了;而且第二种修改方法对Django Admin页面不生效,即应用程序的静态资源可以加载成功,但Admin页面的静态资源无法加载成功。

​

123…16
大西洋暖流

大西洋暖流

76 日志
7 分类
152 标签
常用链接
  • 廖雪峰
  • 阮一峰
  • 王垠
  • 酷壳
  • Python之禅
  • Python入坑指南
  • Echo李金
  • Flask资源
  • Python面试题
  • HelloGitHub
© 2016 — 2025 大西洋暖流 | Site words total count: 97.1k

粤公网安备 44030602003362号