我正在练习在 Flask 中编写一个 REST API,我想将用户名保存为会话变量,并在每个路由中都可以访问它。我想通过curl 通过命令行与该程序交互。
from flask import Flask, Response, session, request, url_for, redirect
import json
app = Flask(__name__)
app.secret_key = 'blabla'
@app.route('/')
def index():
print 'Inside index route'
if 'username' in session:
username = session['username']
print 'Logged in as {}'.format(username)
return Response(response='Logged In\n', status=200, mimetype='text')
else:
print 'Not logged in'
return Response(response='Not Logged In\n', status=200, mimetype='text')
@app.route('/login', methods=['GET', 'POST'])
def login():
print 'Inside login route'
if request.method == 'POST':
session['username'] = json.loads(request.data)['username']
print session['username']
return redirect(url_for('index'))
@app.route('/logout')
def …
Run Code Online (Sandbox Code Playgroud) 任何人都可以在我的代码中解释for循环的差异吗?我知道迭代器是指向某些数据的指针,当我输入"*iter"时,我正在访问该指针指向的值(一个int).但我不明白为什么汽车在这里不会以同样的方式工作.为什么我不需要在另一个for循环中取消引用顶点?
#include <iostream>
#include <list>
#include <queue>
class Graph {
public:
Graph(int num_v): num_vertices(num_v), adj_list(new std::list<int>[num_v]) {}
void add_edge(int u, int v) { adj_list[u].push_back(v); }
void bfs_traversal(int start) {
bool* visited = new bool[num_vertices];
for (int i = 0; i < num_vertices; i++)
visited[i] = false;
std::queue<int> q;
visited[start] = true;
q.push(start);
//std::list<int>::iterator iter;
while(! q.empty()) {
int node = q.front();
std::cout << node << " ";
q.pop();
/*
for (iter = adj_list[node].begin(); iter != adj_list[node].end(); ++iter) {
if (! …
Run Code Online (Sandbox Code Playgroud)