2017-12-18 215 views
-2

下面提到的是我在python中创建的数据库配置文件。在执行代码时我没有收到restaurant.db文件(它是在执行时自动创建的)。请检查我的代码。谢谢无法在python中创建restaurant.db文件

import os 
import sys 
from sqlalchemy import Column, ForeignKey, Integer, String 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy.orm import relationship 
from sqlalchemy import create_engine 
Base = declarative_base() 
class Restaurant(Base): 
    __tablename__ = 'restaurant' 
    id = Column(Integer, primary_key=True) 
    name = Column(String(250), nullable=False) 

class MenuItem(Base): 
    __tablename__ = 'menu_item' 
    name = Column(String(80), nullable=False) 
    id = Column(Integer, primary_key=True) 
    description = Column(String(250)) 
    price = Column(String(8)) 
    course = Column(String(250)) 
    restaurant_id = Column(Integer, ForeignKey('restaurant.id')) 
    restaurant = relationship(Restaurant) 
engine = create_engine('sqlite:///restaurantmenu.db') 
Base.metadata.create_all(engine) 
+1

这路径“sqlite:///restaurantmenu.db”表示你的数据库文件应该在文件系统的根文件夹中创建。你有写权限吗?或者,也许你想写一些像“sqlite:///home/user/restaurantmenu.db”? – MihanEntalpo

+0

Did not get you ...请再次解释我.. – hatim

+0

你想在哪创建restaurantmenu.db文件?在什么文件夹?如果你想创建在“当前”文件夹中,你的路径应该是:“sqlite:// {cur_path} /restaurantmenu.db”.format(cur_path = os.path.dirname(os.path.realpath(__ file__)) ) – MihanEntalpo

回答

0

如果你的数据库文件应位于“d”驱动器,你应该设置你的数据库文件的路径财产以后这样的:“sqlite的:// d:/restaurantmenu.db”

+0

还有一件事,每当我试图从database_setup.py(pyton文件)中导入某些东西到另一个文件时,它显示以下错误。 '回溯(最近通话最后一个): 文件“”,1号线,在 从database_setup进口基地,餐厅,菜单项 ModuleNotFoundError:无模块名为“database_setup'' – hatim

+0

哪里你的‘database_setup.py’文件位置相对于您从中导入它的文件? – MihanEntalpo