前言

继续…

Flask 模板渲染

模板是包含占位符的 HTML 文件

Flask 使用 Jinja2 模板引擎来处理模板渲染。模板渲染允许你将动态内容插入到 HTML 页面中,使得应用能够生成动态的网页内容。

  1. 创建模板:将 HTML 文件放在 templates 文件夹中,使用 Jinja2 占位符。
  2. 渲染模板:使用 render_template 函数在视图函数中渲染模板。
  3. 模板继承:创建基础模板,允许其他模板继承和扩展。
  4. 控制结构:使用条件语句和循环在模板中控制逻辑。
  5. 过滤器:使用过滤器格式化变量数据。
  6. 宏和模板包含:创建和使用宏以及模板包含,提高模板的复用性。
  7. 安全性:Jinja2 默认对模板变量进行自动转义以防止 XSS 攻击。
  8. 模板上下文:将数据传递给模板,并在模板中使用这些数据。

阅读更多

前言

继续学习…

Flask 视图函数

视图函数是Flask应用中的核心部分,它负责处理请求并生成响应

  1. 定义视图函数:视图函数是处理请求并返回响应的核心功能。
  2. 接收请求数据:使用 request 对象获取 URL 参数、表单数据、查询参数等。
  3. 返回响应:可以返回字符串、HTML、JSON 或自定义响应对象。
  4. 处理请求和响应:使用 request 对象和 make_response 来处理请求和生成自定义响应。
  5. 处理错误:视图函数内处理异常或使用 Flask 的错误处理机制。
  6. 视图函数的装饰器:使用 @app.before_request、@app.after_request 等装饰器处理请求前后逻辑。
  7. 视图函数返回的状态码:可以指定 HTTP 状态码来表示请求的处理结果。

阅读更多

前言

待业家中继续学习。

Flask 项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
my_flask_app/

├── app/
│ ├── __init__.py
│ ├── routes/ -- 将不同功能模块的路由分开管理
│ │ ├── __init__.py
│ │ ├── main.py -- 主模块的路由
│ │ └── auth.py -- 认证相关的路由
│ ├── models/ -- 管理数据模型,通常与数据操作相关
│ │ ├── __init__.py
│ │ └── user.py -- 用户模型
│ ├── templates/ -- 存放 HTML 模板文件
│ │ ├── layout.html -- 布局相关
│ │ └── home.html
│ └── static/ -- 存放静态文件,如CSS和JavaScript
│ ├── css/
│ └── js/

├── config.py -- 配置文件,包含应用的配置信息
├── requirements.txt -- 列出项目的依赖库
├── migrations/
│ └── ...
└── run.py -- 用于启动Flask应用

如何在Trae IDE中配置Python解释器

看到app.py 报错,因为没有导入flask库,但我的设备已经安装了,所以应该是需要配置下。在设置中找半天没有找到,后来搜索才知道原来是在Editor中,搜索python,然后将 Python: Default Interpreter Path的路径设置为设备安装的路径。

藏的有点深,可能从产品的角度上看是不想局限在某种语言,可以在Editor设置的说明文案部分增加编译器,解释器。

阅读更多

背景

在win上访问外部的网站网速比较快,但是日常开发又在macbook上,因此需要两台电脑能数据共享,一开始是想通过微信的,但是同一个账号不能同时登陆;用网盘传输之类的,又要额外下载应用或者依赖浏览器。既然是个人使用,可以直接在win上创建共享目录来解决。

操作

设置共享目录

在win上设置个人目录

1.png

阅读更多

前言

4月就要待业家中,经过一两天的踌躇,觉着这其实是一个蛮好的学习与重新调整的机会,后面学习是不会有人提供薪水了,那自然可以更自由些。不过漫无目的的学习的效率比较低,可以根据BOSS上的岗位的关键词去了解相关的技术。

自己喜欢折腾,对Python也蛮有兴趣,先学习下Flask

安装

1
pip3 install Flask

如果遇到网的问题,可以Google搜索pip 换源,现在安装一些工具确实是没有什么门槛

显示下安装后的效果

1
pip3 show Flask

2025-03-27 11.59.35.png

阅读更多

前言

很久没写博客,重新恢复写作后,发现hexo deploy 无法推送了,一直报无权限,检查了~/.gitconfig账号是对的,按参考一在~/.ssh/config中加了公钥

按要求eval "$(ssh-agent -s)"

1
2
3
4
Host *.github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/whz1992gt_github_home

指定github.com使用该公钥,但是还是失败。

阅读更多

仅记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<dict>
<key>URL</key>
<string>http://dev.skyfox.org/udid/receive.php</string> <!--接收数据的接口地址-->
<key>DeviceAttributes</key>
<array>
<string>UDID</string>
<string>IMEI</string>
<string>ICCID</string>
<string>VERSION</string>
<string>PRODUCT</string>
</array>
</dict>
<key>PayloadOrganization</key>
<string>dev.skyfox.org</string> <!--组织名称-->
<key>PayloadDisplayName</key>
<string>查询设备UDID</string> <!--安装时显示的标题-->
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>3C4DC7D2-E475-3378-489C-0BB8D737A653</string> <!--自己随机填写的唯一字符串-->
<key>PayloadIdentifier</key>
<string>dev.skyfox.profile-service</string>
<key>PayloadDescription</key>
<string>本文件仅用来获取设备ID</string> <!--描述-->
<key>PayloadType</key>
<string>Profile Service</string>
</dict>
</plist>

Socket

套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。

大部分系统都提供了一组基于TCP或者UDP的应用程序编程接口(API),该接口通常以一组函数的形式出现,也称为套接字(Socket)

阅读更多

前言

  平常用的颜色宏大概如下

1
#define RGBHex(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

  考虑到蓝湖中获得的十六进制颜色值为#FF0000,cv时需要先删除#再添加0x,想省略这部分

实现

  C语言宏中’#’称之为字符串化操作符(Stringizing Operator),它将函数宏的实际参数转换为对应的字符串常量。利用这个特点定义如下的颜色宏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define HEXA(COLOR,A) ({ \
char *color = #COLOR;\
NSString *colorString = [NSString stringWithUTF8String:color]; \
colorString = [colorString stringByReplacingOccurrencesOfString:@"#" withString:@""]; \
colorString = [colorString stringByReplacingOccurrencesOfString:@"0x" withString:@""]; \
unsigned int red,green,blue; \
NSRange range; \
range.length = 2; \
range.location = 0; \
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&red]; \
range.location = 2; \
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&green]; \
range.location = 4; \
[[NSScanner scannerWithString:[colorString substringWithRange:range]] scanHexInt:&blue]; \
[UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:A]; \
})

#define HEX(COLOR) HEXA(COLOR,1.0)

  支持0xFF0000/#FF0000/FF0000这三种格式

环境

macOS Mojave Version 10.14.3
Xcode 10.1
iPhone 5s 10.0.1
node v11.10.0
npm 6.7.0
React Native 0.58
react 16.6.3

新建ReactNative项目

1
2
brew install node
brew install watchman

安装React Native命令行工具

1
npm install -g react-native-cli

安装Xcode及命令行相关工具


或者

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×