django 向数据库放入一些初始化数据

假设我们需要在django初始化的时候在数据库提前放谢数据用来测试。
比如:数据库里有一张叫 [site_option] 里面有3个字段 [id] [option_name] [option_value],
我们现在需要在启动django之前向这张表添加1条数据,之后我们需要在Views里获取博客的名称:

index_site_option
id option_name option_value
1 blog_name 这里是F_picachoの领域(๑•̀ㅂ•́)و✧

我们先在app目录下创建一个名叫fixtures的文件夹,现在的目录是这样的:

.
├── index (app的名字)
│   ├── admin.py
│   ├── apps.py
│   ├── fixtures (我们需要创建的文件夹)
│   │   └── initial_data.json(初始化json数据)
│   ├── __init__.py
│   ├── migrations

其中initial_data.json的名字可以随意起 比如简化成 init.json

现在假设你有一个叫site_option的模型

class site_option(models.Model):
    option_name=models.CharField(max_length=50)
    option_value=models.CharField(max_length=100)

那么init.json可以这样写:

[
 {
   "model": "index.site_option", //index是app的名称,site_option是模型的名称
   "pk": 1, //primary key 的简写
   "fields": { //里面是你需要添加的数据
     "option_name":"blog_name",
     "option_value": "这里是F_picachoの领域(๑•̀ㅂ•́)و✧"
   }
 }
//如果想再加1条。
 {
    "model": "index.site_option",
    "pk": 2,
    "fields": {
      "option_name": "blog_url",
      "option_value": "https://seq.ink"
    }
  }
]

现在我们初始化数据:
python manage.py loaddata init.json

PS:这里我们不需要写init.json的具体目录,但需要确保它位于 app 目录下的 fixtures 目录

使用Trubo C时踩的一些坑

1.找不到 inclube

一直报错最后发现是下载的Trubo C有问题。换了个Trubo C就正常了....
还有就是路径可能不正确,在下面修改一下就好了:

2.Ctrl+F9闪退

这个暂时没有什么好的办法解决,好像只在Linux上出现。
需要手动Run。

在Linux下安装 DOSBOX_Turbo C

因为作业需求需要用到“Turbo C”开发工具,但我的主力机是Deepin_Linux环境寻思着有Linux版的DOSBOX,应该可以直接上车。

步骤:
1.sudo apt install dosbox -y
2.下载Turbo C放到用户目录(/home/username)
3.编辑用户目录下.dosbox文件夹里的dosbox.conf,在[autoexec]后面追加以下命令(其中“TC20”为我的Turbo C文件夹名):
[autoexec]
mount c ~/TC20
c:
tc

之后启动dosbox就可以直接进入turbo c开发工具了

上图:

已打包成deb

点击下载Turbo_C2.0

点击下载Turbo_C3.2.2

Windows下的神器:scoop给你Linux一般的体验

优点:
1. 习惯使用Linux系统后对Windows不适应的优秀解决方案
2. 简化软件安装过程,已Linux命令行的方法一步安装软件
3. 自动配置安装的软件环境变量,比如Java之类的可以免除手动配置环境变量。
获取方法:
官网:http://scoop.sh/
Github:https://github.com/lukesampson/scoop

安装要求:
最新版的Windows10可直接安装;
必须使用powershell 3.0以上,在命令行窗口中输入命令 $PSVersionTable.PSVersion 查看版本;

 
Major下面的数字为当前版本
Windows 7 SP1 + / Windows Server 2008+;
PowerShell 3(或更高版本)和.NET Framework 4.5+;
必须为您的用户帐户启用PowerShell,例如 set-executionpolicy remotesigned -s currentuser;
步骤
1. set-executionpolicy remotesigned -s currentuser
   #这一步为可选,可简写cu,如图
2. iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
   #输入A“全是”

3. scoop install sudo
   #用过Linux的都知道sudo命令可以临时使用管理员权限

4. 可以用scoop安装其它软件了


另一个类似的程序:
choco 这个自行了解,不做详细介绍

天猫精灵的高阶玩法-控制我的电脑

用天猫精灵关闭我的电脑:
1.https://open.aligenie.com
创建一个开发者账户,然后创建一个应用
2.https://github.com/ychongsaytc/inhost
下载这个py项目用来做webhook
3.在https://open.aligenie.com里创建一个技能-意图-回复设置的下面-下载认证文件
4.在inhost目录下创建一个文件夹./inhost/aligenie/里面把下载的认证文件放进去
5.修改inhost.py里的代码在urls段添加一条路由指向认证文件

[cc lang="python"]
urls = (
'/', 'index',
'/aligenie/认证文件.txt','aligenie',
'/(\S+?)/(\S+?)/?', 'deploy',
)

#再添加一个类

class aligenie:
def GET(self):
return'认证文件里的字符串'
[/cc]
6.把config-sample.json改名为config.json并修改配置
如下
[cc lang="python"]
{
"http_host": "0.0.0.0",
"http_port": 10000,
"url_secret": "一个随机的字符串",
"pid_file": "/var/run/inhost.pid",
"log_file": "/var/log/inhost.log",
"commands": {
"shutdown": {
"command": "shutdown -h now",
"timeout": 300,
"netboot":{
"command":"/usr/bin/etherwake -D '70:E9:4C:68:19:44'",
"timeout":300
}
}
}
}
[/cc]
然后运行python service.py start
如果有报错 把缺少的包安装好就可以了
7.因为我家的ip是公网的,所以可以直接使用。没有请进行端口映射
8.在天猫开放平台你创建的技能那里:在回复配置中调好url如:
http://ip:port/配置中的随机字符串/shutdown
调用你设置好的命令,配置文件中的“shutdown”。之后你每次对天猫说关闭我的电脑(技能中设置的调用词)电脑就好执行你填好的关机命令
如果你的路由器可以用python的话可以再写一条开机命令(通过网络唤醒)

你可以利用这个webhook增加更多功能

开始学Python

很久没发博客了,最近在学Python玩。贴一波代码:《基本登录系统》

UserList ={'admin':'adminp','user1':'passw1','user2':'passw2'}

def f_u(user):
if user in UserList:
return(0)
else:
return(1)

def check(user,passwrold):
if f_u(user) != 1:
if passwrold == UserList[user]:
return(0)
else:
return(1)

def lock():
try:
lock = open("lock.l",mode="x")
lock.close()
except IOError:
print('错误次数太多禁止登录!')
exit()

lock()

print('****登录系统*****')
i = 3
user = input('用户名:')

while f_u(user) == 1:
print('该用户不存在!请重新输入!')
user = input('用户名:')

passwrold = input('密码:')

while check(user,passwrold) == 1:
i -= 1
if i < 0: lock() print('密码错误!你还有%s次机会!'%(i)) passwrold = input('密码:') print('Welcome!')