首先安装pycharm,多做介绍了,网上一堆教程.
破解
1.修改hosts文件
将0.0.0.0 account.jetbrains.com添加到hosts文件最后,注意hosts文件无后缀,如果遇到无法修改或权限问题,可以采用覆盖的方法去替换hosts文件
修改后请检查hosts文件是否修改,激活码无法激活的原因99.99%是因为hosts没有修改正确
Windows系统hosts文件路径为:c:\windows\system32\drivers\etc
Mac和Ubantu(Linux)系统hosts文件路径为:/etc
image.png
复制激活码
打开PyCharm选择Activation code激活,然后复制下面的激活码点击激活。
K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSUzAiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IlJEIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJEQyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkFDIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiRFBOIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiR08iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkNMIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifV0sImhhc2giOiI4OTA4Mjg5LzAiLCJncmFjZVBlcmlvZERheXMiOjAsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-Owt3/+LdCpedvF0eQ8635yYt0+ZLtCfIHOKzSrx5hBtbKGYRPFDrdgQAK6lJjexl2emLBcUq729K1+ukY9Js0nx1NH09l9Rw4c7k9wUksLl6RWx7Hcdcma1AHolfSp79NynSMZzQQLFohNyjD+dXfXM5GYd2OTHya0zYjTNMmAJuuRsapJMP9F1z7UTpMpLMxS/JaCWdyX6qIs+funJdPF7bjzYAQBvtbz+6SANBgN36gG1B2xHhccTn6WE8vagwwSNuM70egpahcTktoHxI7uS1JGN9gKAr6nbp+8DbFz3a2wd+XoF3nSJb/d2f/6zJR8yJF8AOyb30kwg3zf5cWw==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==
创建第一个flask项目
image.png
默认只支持get请求,如果需要其他的请求方式需自己添加。(methods中以列表形式添加)
@app.route('/', methods=['GET','POST'])
可下载postman来执行不同类型的请求命令。
postman.png
定义其他路由 默认路由为app.route('/')
#<>定义路由的参数,<>内需要起个名字。
@app.route('/orders/<order_id>')
def get_order_id(order_id):
#需要在视图函数的()内填入参数名,那么后面的代码才能去使用。
return 'order_id %s' % order_id
默认的参数名是一个string为Unicode编码。
路由访问的优化
@app.route('/orders/<int:order_id>')
def get_order_id(order_id):
#参数类型,默认是字符串,Unicode。
print (type(order_id))
#有的时候需要对路由做访问优化。订单ID应该是int;类型。
#需要在视图函数的()内填入参数名,那么后面的代码才能去使用。
return 'order_id %s' % order_id
限定为int float等
实现一个简单登录的逻辑处理。
- 目的:实现一个简单登录的逻辑处理。
- 1.路由需要有get和post请求两种方式。-->需要判断请求方式。
- 2.获取请求参数。
- 3.判断参数是否填写&密码是否相同。
- 4.如果判断都没有问题,就返回一个success。
在tempplates中添加一个index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post">
<label>用户名:</label><input type="text" name="username"><br>
<label>密码:</label><input type="password" name="password"><br>
<label>确认密码:</label><input type="password" name="password2"><br>
<input type="submit" value="提交"><br>
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %}
</form>
</body>
</html>
app.py中的内容为:
from flask import Flask,render_template,request
app = Flask(__name__)
'''
目的:实现一个简单登录的逻辑处理。
1.路由需要有get和post请求两种方式。-->需要判断请求方式。
2.获取请求参数。
3.判断参数是否填写&密码是否相同。
4.如果判断都没有问题,就返回一个success。
'''
@app.route('/',methods=['GET','POST'])
def index():
#1.request:请求对象-->获取请求方式、数据
if request.method == 'POST':
#2.获取请求参数
username = request.form.get('username')
password = request.form.get('password')
password2 = request.form.get('password2')
print(password)
#3.验证参数是否填写&密码是否相同。
if not all([username,password,password2]):
print('参数不完整')
elif password != password2:
print('密码不一致')
else:
return 'success'
return render_template('index.html')
if __name__ == '__main__':
app.run()
其中
if not all([arg1, arg2, arg3]): # 当 arg1, arg2, arg3都不为空时all函数返回true
return jsonify(errno=RET.PARAMERR, errmsg=u"参数不完整!")
对上一个程序进行优化
将打印在控制台的消息转变为显示在页面上的消息。
- 给模板传递消息
- flash --> 需要对内容加密,因此需要设置secret_key,做加密消息的混淆。
- 模板中需要遍历消息
1.首先导入flash包,并将所有的print()改为flash(),添加secret_key。
2.在index.html中使用遍历获取闪现的消息。
以下是index.html中添加的部分(先敲for然后tab键。)
{# 使用遍历获取闪现的消息 #}
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %}
app.py中添加secret_key(任意字符串)
'''
1.给模板传递消息
2.flash --> 需要对内容加密,因此需要设置secret_key,做加密消息的混淆。
3.模板中需要遍历消息
'''
app.secret_key = 'xiao'