对于 Flask 应用程序,我有以下文件结构:
myapplication/
run.py
myapplication/
__init__.py
views/
__init__.py
models.py
...
templates/
static/
Run Code Online (Sandbox Code Playgroud)
我已经myapplication/__init__.py使用 SQLAlchemy初始化了数据库。我想导入数据库对象,models.py尽管我不确定如何做。
我阅读了这个答案并尝试myapplication/__init__.py使用这样的相对导入来导入数据库对象:
from ... import db
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:ValueError: Attempted relative import in non-package。
那么如何获取myapplication/__init__.pyfor 中的数据库对象models.py呢?谢谢。
我有一个包含 NavHostFragment 的 BottomSheetDialogFragment,如下所示:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/add_feeling_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:defaultNavHost="true"
app:navGraph="@navigation/add_feeling_graph" />
</LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下任一方法在其类中获取 NavController 时:
activity?.findNavController(R.id.add_feeling_nav_host_fragment)
view.findNavController()
Run Code Online (Sandbox Code Playgroud)
第一个选项崩溃,因为它找不到 ID,而第二个选项确实找到了父导航控制器并使用它。
我为另一个 Fragment 设置了相同的设置,但它不是一个对话框,而且运行良好。有什么想法可能是什么问题?谢谢
android android-dialogfragment android-navigation android-architecture-navigation
我为我的应用程序设置了一个新的virtualenv,以清理已安装的软件包.我config.py在应用程序的实例文件夹中有一个文件.有两个配置,一个用于'instance'文件夹中的dev,另一个用于根文件夹中的production.该应用程序在旧的环境中工作,但现在我收到一个错误,它无法找到配置文件.为什么我会收到此错误,如何解决?
Traceback (most recent call last):
File "application.py", line 12, in <module>
application.config.from_pyfile('config.py')
File "/Users/pavsidhu/Envs/test/lib/python2.7/site-packages/flask/config.py", line 128, in from_pyfile
with open(filename) as config_file:
IOError: [Errno 2] Unable to load configuration file (No such file or directory): '/Users/pavsidhu/Envs/test/var/application-instance/config.py'
Run Code Online (Sandbox Code Playgroud)
我的项目结构如下:
/Users/pavsidhu/Envs/test/
lib/python-3.4/site-packages/
bin/
application.py
static/
templates/
instance/
config.py
Run Code Online (Sandbox Code Playgroud) 我有一个表,我想按照添加到数据库的时间顺序获取最后 3 条记录。我有以下内容:
session.query(User).order_by(User.id.desc()).limit(3)
Run Code Online (Sandbox Code Playgroud)
这会从数据库中获取最后 3 条记录,但是如果我降序排列 ID,则它们的顺序是倒序的。我希望按顺序排列记录,但是使用多个订单查询似乎不起作用。
有解决方法或解决方案吗?谢谢。
我在一个有日期字段的表中有记录.
我想查询表,以便返回的记录只是给定周的星期日日期.
我怎么能用python的datetime库来实现呢?谢谢.
我正在将 Python 与 Flask 和 Jinja2 结合使用,并尝试实现一个侧边栏。在 HTML 页面中我得到了这个:
{% include "sidebar.html" %}
Run Code Online (Sandbox Code Playgroud)
我想要在侧边栏文件中包含最新用户的块。为此,我需要从服务器获取 sidebar.html 文件的结果。但是我应该在 python 文件中的哪里编写代码呢?
我使用以下导航器使用React-Navigation:
const Navigator = StackNavigator(
{
Home: {
screen: Home
},
User: {
screen: User
}
}
)
Run Code Online (Sandbox Code Playgroud)
我的User组件:
export default class User extends Component {
static navigationOptions = {
title: () => 'User'
}
render() {
return (
<Text>This is the user page.</Text>
)
}
}
Run Code Online (Sandbox Code Playgroud)
我希望User场景导航栏的标题是用户的名字.该名称保持在Redux状态.
因为我User从Home场景中访问场景,所以当我推动场景时我可以传递用户的名字:
this.props.navigation.navigate('User', {name: user.name})
Run Code Online (Sandbox Code Playgroud)
但是,如果用户的名称在更新时更新User,则导航标题将不会更新.我能看到的唯一解决方案是从内部访问Redux状态navigationOptions.有没有办法做到这一点或更好的方法来处理这个问题?谢谢.
我有一个结构简化的对象,如下所示:
state = {
todo: {
1: {text: 'Buy apples'},
2: {text: 'Buy milk'}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我想删除待办事项的不变性,根据 Stack Overflow 上的其他答案,我可以解构待办事项列表:
const idToDelete = 2
let {
[idToDelete]: deleted,
...newTodo
} = state.todo
Run Code Online (Sandbox Code Playgroud)
如果我这样做console.log(newTodo),那么它具有相同的值state.todo,这意味着它没有删除到 id 为 2 的待办事项。如果我 console.log(deleted)然后它返回我想删除的待办事项的内容:{text: 'Buy milk'}。
我知道使用诸如 Immutable.js 之类的库来管理它会更容易一些,但是我想知道为什么解构对象不会删除待办事项项。谢谢。
我已经设计了一个使用 SQLite 数据库的网站。我没有使用一张大表,而是将其设计为当用户注册时,会为他们创建一个单独的表。每个用户可能会使用数百条记录。我这样做是因为我认为这样会更容易构建和访问。
我在该网站上的其他问题中发现,一张表比为每个用户使用多个表更好。
是否值得重新设计我的网站,以便不再有许多桌子,而是一张大桌子?我当前的方法似乎运行良好,尽管它仍在开发中,所以我不确定它在真实环境中的效果如何。
问题是:在性能、效率、组织和空间方面,更改代码以形成一个大型数据库而不是许多单独的数据库是否值得?
SQLite:创建用户表。
CREATE TABLE " + name + " (id INTEGER PRIMARY KEY, subject TEXT, topic TEXT, questionNumber INTEGER, question TEXT, answer TEXT, color TEXT)
Run Code Online (Sandbox Code Playgroud)
SQLite:将帐户添加到帐户表中。
"INSERT INTO accounts (name, email, password, activated) VALUES (?,?,?,?)", (name, email, password, activated,)
Run Code Online (Sandbox Code Playgroud)
请注意,如果有什么区别的话,我将 python 与 Flask 一起使用。
编辑
我也知道已经存在这样的问题,但是没有人说明优点或缺点是否值得。
我想在 Flask 中的视图之间传递一个大列表,但是我不能把它放在一个会话中,因为它超过了 4096 字节的限制。有没有办法通过像这样的表单在页面之间传递列表?
Python:
@app.route('/send')
def send():
list = ['item1', 'item2', 'item3', 'item4']
return render_template('send.html', list=list)
@app.route('/receive', methods=['POST', 'GET'])
def receive():
list = request.form['list']
return render_template('receive.html')
Run Code Online (Sandbox Code Playgroud)
发送.html:
<form method="POST" action="{{ url_for('receive') }}">
<input type="text" name="list" value="{{ list }}">
<submit>Submit</submit>
</form>
Run Code Online (Sandbox Code Playgroud)
这行得通吗?谢谢。
python ×6
flask ×4
database ×2
javascript ×2
sqlalchemy ×2
android ×1
android-architecture-navigation ×1
babeljs ×1
datetime ×1
html ×1
immutability ×1
jinja2 ×1
react-native ×1
reactjs ×1
session ×1
sidebar ×1
sqlite ×1