我想知道是否可以在Django中的models.py文件中定义一个外键,它是对另一个应用程序中的表的引用?
换句话说,我有两个应用程序,称为cf和profiles,在cf/models.py中我有(除其他外):
class Movie(models.Model):
title = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
在profiles/models.py中我希望:
class MovieProperty(models.Model):
movie = models.ForeignKey(Movie)
Run Code Online (Sandbox Code Playgroud)
但我无法让它发挥作用.我试过了:
movie = models.ForeignKey(cf.Movie)
Run Code Online (Sandbox Code Playgroud)
我尝试在models.py的开头导入cf.Movie,但我总是遇到错误,例如:
NameError: name 'User' is not defined
Run Code Online (Sandbox Code Playgroud)
我是否通过尝试以这种方式将两个应用程序绑定在一起来打破规则,或者我的语法错误?
我需要在django模板中执行过滤查询,以获得一组与视图中的python代码等效的对象:
queryset = Modelclass.objects.filter(somekey=foo)
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我想做
{% for object in data.somekey_set.FILTER %}
Run Code Online (Sandbox Code Playgroud)
但我似乎无法找到如何写FILTER.
卸载旧的Django版本后,我已更新到最新的Django版本1.0.2.但是现在当我运行django-admin.py时出现以下错误.我该如何解决这个问题?
Traceback (most recent call last):
File "C:\Python25\Lib\site-packages\django\bin\django-admin.py", line 2, in <module>
from django.core import management
ImportError: No module named django.core
Run Code Online (Sandbox Code Playgroud) 我一直在使用nginx/gunicorn和Flask为我的应用程序开发一个新的开发平台.
Ops-wise,一切正常 - 我遇到的问题是调试Flask层.当我的代码出现错误时,我只是将500错误返回到浏览器,并且没有任何内容显示在控制台或我的日志中.
我尝试了很多不同的配置/选项......我想我一定是想错过一些明显的东西.
我的gunicorn.conf:
import os
bind = '127.0.0.1:8002'
workers = 3
backlog = 2048
worker_class = "sync"
debug = True
proc_name = 'gunicorn.proc'
pidfile = '/tmp/gunicorn.pid'
logfile = '/var/log/gunicorn/debug.log'
loglevel = 'debug'
Run Code Online (Sandbox Code Playgroud)
borks-testserver.py的一些Flask代码示例:
from flask import Flask
from flask import render_template_string
from werkzeug.contrib.fixers import ProxyFix
app = Flask(__name__)
@app.route('/')
def index():
n = 1/0
return "DIV/0 worked!"
Run Code Online (Sandbox Code Playgroud)
最后,命令在gunicorn运行烧瓶应用程序:
gunicorn -c gunicorn.conf.py testserver:app
Run Code Online (Sandbox Code Playgroud)
谢谢你们
在模板中,如何获取我当前所在的页面?我宁愿不传递变量page,特别是当我知道有些request.xxx可以提供我的信息时.
<li {% if page=="home" %}class="active"{% endif %}>
<a href="/">Home</a>
</li>
<li {% if page=="about" %}class="active"{% endif %}>
<a href="/about">About</a>
</li>
Run Code Online (Sandbox Code Playgroud) Flask/SQLAlchemy如何配置为创建新的数据库连接(如果不存在)?
我有一个不经常访问的Python/Flask服务器,它使用SQLAlchemy.每隔几天就会访问一次,并且在第一次访问时它经常会抛出"MySQL服务器已经消失"的错误.后续的页面视图很好,但是出现这个初始错误看起来不合适.
我想知道处理这个问题的正确方法 - 像"长时间休息"这样的建议,在这种情况下大约需要4天,似乎不正确.如何测试缺少数据库连接并在需要时创建一个?
我的烧瓶应用布局是:
myapp/
run.py
admin/
__init__.py
views.py
pages/
index.html
main/
__init__.py
views.py
pages/
index.html
Run Code Online (Sandbox Code Playgroud)
_ init _ .py文件为空.admin/views.py内容是:
from flask import Blueprint, render_template
admin = Blueprint('admin', __name__, template_folder='pages')
@admin.route('/')
def index():
return render_template('index.html')
Run Code Online (Sandbox Code Playgroud)
main/views.py类似于admin/views.py:
from flask import Blueprint, render_template
main = Blueprint('main', __name__, template_folder='pages')
@main.route('/')
def index():
return render_template('index.html')
Run Code Online (Sandbox Code Playgroud)
run.py是:
from flask import Flask
from admin.views import admin
from main.views import main
app = Flask(__name__)
app.register_blueprint(admin, url_prefix='/admin')
app.register_blueprint(main, url_prefix='/main')
print app.url_map
app.run()
Run Code Online (Sandbox Code Playgroud)
现在,如果我访问http://127.0.0.1:5000/admin/,它会正确显示admin/index.html.但是, …
我喜欢Flask的错误捕捉.它非常简单:
@app.errorhandler(404)
def pageNotFound(error):
return "page not found"
Run Code Online (Sandbox Code Playgroud)
像魅力一样工作.但它不适用于500错误代码.我想在出现问题时捕获Python错误,在代码中引发异常.那可能吗?
我应该注意,如果我return abort(500)在视图中明确调用那么500错误处理程序确实有效.所以这明确适用于Python代码失败的时候.
这可能吗?
我想在我的Flask应用程序中包含一个sass编译器.有一种普遍接受的方式吗?