如何将没有版本控制的文件夹添加到特定的SVN位置?我经常开始编写代码,只有在我有几个包含代码文件的文件夹之后才将其添加到SVN.
我通常做的是:
我从http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world上了解了我的Flask项目的布局.
我有以下结构:
app/
__init__.py
views.py
forms.py
myFile.py
run.py
config.py
Run Code Online (Sandbox Code Playgroud)
在views.py,forms.py我能够使用
from config import basedir
Run Code Online (Sandbox Code Playgroud)
但是我不能在myFile.py中使用它
我补充道
import Flask
Run Code Online (Sandbox Code Playgroud)
当我修改它时,Flask Web服务器重新启动,但它没有说app/myFile.py中发现的更改重新启动它只是重新启动.
我需要做什么才能使用
from config import basedir
Run Code Online (Sandbox Code Playgroud)
在我的python文件中.__init__.py
对于forms.py,我没有看到任何特殊内容.
编辑:这是我的__init__.py
文件:
from flask import Flask
from config import basedir
app = Flask(__name__)
app.config.from_object('config')
from app import views
Run Code Online (Sandbox Code Playgroud) 我希望能够访问一个网页,它将运行一个python函数并在网页中显示进度.
因此,当您访问该网页时,您可以看到脚本的输出,就像您从命令行运行它一样.
根据这里的答案
我正在尝试显示PYTHON的输出
我试图使用Markus Unterwaditzer的代码和python函数.
import flask
import subprocess
app = flask.Flask(__name__)
def test():
print "Test"
@app.route('/yield')
def index():
def inner():
proc = subprocess.Popen(
test(),
shell=True,
stdout=subprocess.PIPE
)
while proc.poll() is None:
yield proc.stdout.readline() + '<br/>\n'
return flask.Response(inner(), mimetype='text/html') # text/html is required for most browsers to show the partial page immediately
app.run(debug=True, port=5005)
Run Code Online (Sandbox Code Playgroud)
它运行但我在浏览器中看不到任何内容.
我试图清除所有会话变量但不注销当前用户.
user = request.session.get('member_id', None)
request.session.flush()
request.session.modified = True
request.session['member_id'] = user
request.session.modified = True
Run Code Online (Sandbox Code Playgroud)
这还会影响网站的其他用户吗?
在我的forms.py文件中,我有
class myForm(Form):
fileName = FileField()
Run Code Online (Sandbox Code Playgroud)
在我的views.py文件中
form = myForm()
if form.validate_on_submit():
fileName = secure_filename(form.fileName.file.filename)
Run Code Online (Sandbox Code Playgroud)
在我的.html文件中
{% block content %}
<form action="" method="post" name="simple" enctype="multipart/form-data">
<p>
Upload a file
{{form.fileName()}}
</p>
<p><input type="submit" value="Submit"></p>
</form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
当我点击提交时它似乎工作但文件不在任何项目目录中.
我的测试需要很长时间才能运行,我试图在测试之间回滚事务,而不是在测试之间删除和创建表.
问题是在某些测试中我做了多次提交.
编辑:如何在测试之间回滚事务,以便测试运行得更快
这是用于测试的Base类.
import unittest
from app import create_app
from app.core import db
from test_client import TestClient, TestResponse
class TestBase(unittest.TestCase):
def setUp(self):
self.app = create_app('testing')
self.app_context = self.app.app_context()
self.app_context.push()
self.app.response_class = TestResponse
self.app.test_client_class = TestClient
db.create_all()
def tearDown(self):
db.session.remove()
db.drop_all()
db.get_engine(self.app).dispose()
self.app_context.pop()
Run Code Online (Sandbox Code Playgroud)
这是我尝试回滚交易.
class TestBase(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.app = create_app('testing')
cls.app_context = cls.app.app_context()
cls.app_context.push()
cls.app.response_class = TestResponse
cls.app.test_client_class = TestClient
db.create_all()
@classmethod
def tearDown(cls):
db.session.remove()
db.drop_all()
db.get_engine(cls.app).dispose()
def setUp(self):
self.app_content = self.app.app_context()
self.app_content.push()
db.session.begin(subtransactions=True)
def tearDown(self):
db.session.rollback()
db.session.close() …
Run Code Online (Sandbox Code Playgroud) 我有一个带有TextField,FileField的表单,我想添加一个RadioField.
我想要一个有两个选项的无线电领域,用户只能选择一个.我正在关注前两个有效的形式示例.
我的forms.py看起来像这样
from flask import Flask, request
from werkzeug import secure_filename
from flask.ext.wtf import Form, TextField, BooleanField, FileField, file_required, RadioField
from flask.ext.wtf import Required
class ImageForm(Form):
name = TextField('name', validators = [Required()])
fileName = FileField('fileName', validators=[file_required()])
certification = RadioField('certification', choices = ['option1', 'option2'])
Run Code Online (Sandbox Code Playgroud)
在我的views.py文件中
form = myForm()
if form.validate_on_submit():
name = form.name.data
fileName = secure_filename(form.fileName.file.filename)
certification = form.certification.data
Run Code Online (Sandbox Code Playgroud)
在我的.html文件中
{% block content %}
<h1>Simple Form</h1>
<form action="" method="post" name="simple" enctype="multipart/form-data">
{{form.hidden_tag()}}
<p>
Name:
{{form.name(size=80)}}
</p>
<p>
Upload a file …
Run Code Online (Sandbox Code Playgroud) 我使用本教程作为指导.http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database
我想要有可以产生多个产品的类别.类似于他有多个帖子的用户.
当我打开python解释器并尝试创建一个类别
>>>from app import db, models
>>>u = models.Category(name="Test")
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
/sqlalchemy/orm/properties.py", line 1387, in _generate_backref
self, mapper))
sqlalchemy.exc.ArgumentError: Error creating backref 'category' on relationship 'Category.products': property of that name exists on mapper 'Mapper|Product|product'
Run Code Online (Sandbox Code Playgroud)
所以backref存在问题.在教程中(我已经用他的代码尝试过),他能够使用类似语法的用户.
我甚至尝试使用他的所有文件并创建并迁移了一个新的数据库,我得到了同样的错误.
这是我的models.py文件:
from app import db
WR_IP_NO = 0
WR_IP_YES = 1
class Category(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(64), unique = True)
products = db.relationship('Product', backref = 'category', lazy = 'dynamic')
def __repr__(self):
return '<Category %r>' % (self.name)
class …
Run Code Online (Sandbox Code Playgroud) 我希望能够访问一个网页,它将运行一个python函数并在网页中显示进度.
因此,当您访问该网页时,您可以看到脚本的输出,就像您从命令行运行它并在命令行中查看输出一样.
我需要在函数中做什么?
我需要在模板中做什么?
编辑:
我正在尝试使用Markus Unterwaditzer的代码和模板.
{% extends "base.html" %}
{% block content %}
{% autoescape false %}
{{word}}
{% endautoescape %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
Python代码
import flask
from flask import render_template
import subprocess
import time
app = flask.Flask(__name__)
@app.route('/yield')
def index():
def inner():
for x in range(1000):
yield '%s<br/>\n' % x
time.sleep(1)
return render_template('simple.html', word=inner())
#return flask.Response(inner(), mimetype='text/html') # text/html is required for most browsers to show the partial page immediately
app.run(debug=True, port=8080)
Run Code Online (Sandbox Code Playgroud)
它运行但我在浏览器中看不到任何内容.
我正在使用py.test来测试我的Flask应用程序,但我得到了IntegrityError,因为我在两个不同的测试中创建了相同的模型.
我正在使用postgreSQL 9.3.5和Flask-SQLAlchemy 1.0.
编辑我用Jeremy Allen的答案更新了我的sessoin夹具,它解决了很多错误.但是,当我使用用户夹具时,我仍然可以获得IntegrityErrors
错误
E IntegrityError: (IntegrityError) duplicate key value violates unique constraint "ix_users_email"
E DETAIL: Key (email)=(not_used@example.com) already exists.
E 'INSERT INTO users (email, username, name, role_id, company_id, password_hash, confirmed, member_since, last_seen) VALUES (%(email)s, %(username)s, %(name)s, %(role_id)s, %(company_id)s, %(password_hash)s, %(confirmed)s, %(member_since)s, %(last_seen)s) RETURNING users.id' {'username': 'not_used', 'confirmed': True, 'name': 'To be Removed', 'member_since': datetime.datetime(2014, 10, 29, 19, 19, 41, 7929), 'company_id': None, 'role_id': 3, 'last_seen': datetime.datetime(2014, 10, 29, 19, 19, 41, 7941), 'email': 'not_used@example.com', 'password_hash': 'pbkdf2:sha1:1000$cXUh6GbJ$6f38242871cff5e4cce4c1dc49a62c4aea4ba1f3'} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从头文件中使用登录名和密码从服务器获取JSON.
请求中没有凭据.
var app = angular.module("app", []);
app.factory('AuthService', function() {
var currentUser;
var login = 'hello@example.com';
var password = 'hello';
return {
//login: function() {
//},
//logout: function() {
//},
login: login,
password: password,
isLoggedIn: function() {
return currentUser != null;
},
currentUser: function() {
return currentUser;
}
};
});
app.run(['$http', 'AuthService', function($http, AuthService) {
/* Using btoa to do Base64 */
$http.defaults.headers.common['Authorization'] = 'Basic ' + btoa(AuthService.login + ':' + AuthService.password);
}]);
app.controller('LabController', function($scope, $http){
$scope.labs = $http.get('http://127.0.0.1:5000/api/v1.0/labs').error(function(data, status, …
Run Code Online (Sandbox Code Playgroud) 我想将4个参数传递给我的python脚本,其中一个必须是一个列表.即使它只包含1个元素.
参数的顺序无关紧要.
import sys
print sys.argv
one = sys.argv[1]
two = sys.argv[2]
three = sys.argv[3]
four = sys.argv[4]
print "one: " + one
print "two: " + two
print "three: "+ three
print "four: " + four
Run Code Online (Sandbox Code Playgroud)
这就是我的称呼方式.
python myScript.py name file setting ['listItem1']
Run Code Online (Sandbox Code Playgroud)
第四项是具有一个元素的列表.但是当我打印它时,我看到了
four: [listItem1]
Run Code Online (Sandbox Code Playgroud)
我想看看
four: ['listItem1']
Run Code Online (Sandbox Code Playgroud) 我有一个 RadioField 表单项,它使用数据库中的字段值。
如果没有创建数据库,我将无法启动 Flask Webserver,即使它应该只在我转到该页面并加载该表单时访问该数据库。
如果我在 Web 服务器运行时更新数据库,我将看不到包含新数据库信息的表单。
直到我重新启动 Flask 网络服务器。
我怎样才能得到它,以便在您访问页面时强制表单从数据库中重新加载其值。
此外,我很确定它将 RadioField 的值存储在内存中,因为我可以删除数据库并且 Flask Webserver 将继续运行并且 RadioField 仍将显示。
我正在使用 sqlite3 数据库并使用 APSW(另一个 python sqlite3 包装器)读取和写入它
这是我的表格
class DatabaseForm(Form):
listOfRows = db.getDatabase()
rows = [(str(x[0]), x) for x in listOfRows]
images = RadioField('images', validators = [Required()], choices = rows)
Run Code Online (Sandbox Code Playgroud)
这是我的观点
@app.route('/database', methods = ['GET', 'POST'])
def database():
''' displays the database and allows the user to select an entry '''
form = DatabaseForm()
if form.validate_on_submit():
primaryKey = form.images.data …
Run Code Online (Sandbox Code Playgroud) flask ×9
python-2.7 ×9
python ×8
angularjs ×1
django ×1
jinja2 ×1
pytest ×1
sqlalchemy ×1
svn ×1