Шаг 3: Урок 3

Следуя руководству Flask, запустив Win 7, Python 2.7.3, virtualenv, и я застрял в шаге 3: Создание базы данных http://flask.pocoo.org/docs/tutorial/dbinit/#tutorial-dbinit

Такая схема может быть создана путем соединения файла schema.sql в команду sqlite3 следующим образом:

sqlite3 /tmp/flaskr.db < schema.sql 

Как запустить эту команду, потому что CMD <venv> возвращает:

«sqlite3» не распознается как внутренняя или внешняя команда, оперативная программа или командный файл.

Этот шаг необходим?

Folder Project, 2 файла schema.sql и flaskr.py.

schema.sql

 drop table if exists entries; create table entries ( id integer primary key autoincrement, title string not null, text string not null ); 

flaskr.py

 # all the imports import sqlite3 from flask import Flask, request, session, g, redirect, url_for, \ abort, render_template, flash from contextlib import closing # configuration DATABASE = '/tmp/flaskr.db' DEBUG = True SECRET_KEY = 'development key' USERNAME = 'admin' PASSWORD = 'default' # create our little application :) app = Flask(__name__) app.config.from_object(__name__) app.config.from_envvar('FLASKR_SETTINGS', silent=True) def connect_db(): return sqlite3.connect(app.config['DATABASE']) def init_db(): with closing(connect_db()) as db: with app.open_resource('schema.sql') as f: db.cursor().executescript(f.read()) db.commit() if __name__ == '__main__': app.run() 

< venv > python

 >>> from flaskr import init_db >>> init_db() Trackeback <most recent call last>: File "<stdin>", line 1, in <module> File "flaskr.py", line 24, in init_db with closing (connect_db()) as db: File "flaskr.py", line 21, in connect_db return sqlite3.connect(app.config['DATABASE']) sqlite3.OperationalError: unable to open database. 

5 Solutions collect form web for “Шаг 3: Урок 3”

Вы путаетесь между файловыми системами Windows и UNIX.

Узнайте, где файл sqllite.exe существует на компьютере. скажем, он находится в C:\sqllite . Затем вам также нужно определить, где вы создадите файл базы данных. /tmp/flaskr.db для файловой системы UNIX. В окнах вы должны указать точный путь или в текущем рабочем каталоге. скажем, это C:\flasktutorial .

Чтобы быть в безопасности, вы можете сначала создать пустой файл flaskr.db .

 Open a notepad and create the blank file at `C:\flasktutorial\flaskr.db` 

Теперь вы можете запустить:

 C:\sqllite\sqllite.exe C:\flasktutorial\flaskr.db < schema.sql 

Также убедитесь, что в файле flaskr.py измените базу данных:

 DATABASE = 'C:\flasktutorial\flaskr.db' 

Вы активировали virtualenv и установленную колбу?

флакон должен иметь sqlite3 по умолчанию. Я получил следующую ошибку:

  File "flaskr.py", line 26, in connect_db return sqlite3.connect(app.config['DATABASE']) sqlite3.OperationalError: unable to open database file` 

Чтобы исправить это, я должен был сделать следующее (в Windows):

  1. Измените DATABASE = '/tmp/flaskr.db' на DATABASE = '.\\tmp\\flaskr.db'
  2. Создайте папку tmp в текущей папке (flaskr)
  3. Создайте пустой файл flaskr.db в tmp

После этого он работает для меня.

Как вы можете наблюдать из журналов ошибок, ошибка возникает при подключении DB

sqlite3.OperationalError: невозможно открыть базу данных.

И поскольку этот шаг не удался для вас,

sqlite3 /tmp/flaskr.db <schema.sql

Вы легко можете понять, что этот шаг необходим . Теперь, чтобы решить эту ошибку, просто вам нужно установить sqlite3, В ubuntu вы можете установить sqlite3 как,

apt-get install sqlite3

После установки ваша программа будет работать нормально, как и ожидалось.

Я не уверен, что эти советы напрямую применимы к ПО, но они приземлили меня здесь, так что, возможно, это будет полезно.

Обязательно проверьте файл README в каталоге flaskr который указывает запущенную flask --app=flaskr initdb из командной строки.

Если это возвращает AttributeError: 'Flask' object has no attribute 'cli' , возможно, из-за click не будет установлен.

Если команда возвращает flask: command not found , это может быть связано с тем, что установлена ​​более старая версия Flash, что и делает pip install flask .

На сегодняшний день эта команда pip install https://github.com/mitsuhiko/flask/tarball/master , установит самую последнюю версию.

Только для пользователей linux:

Сначала вы устанавливаете Sqlite3 здесь .

После установки вам необходимо создать файл с именем flaskr.db , расположение этого файла должно быть / myproject / venv / bin / flaskr / tmp .

Следующий шаг – команда run

 sqlite3 /home/ddserver/myproject/venv/bin/flaskr/tmp/flaskr.db<schema.sql 

Я взял файл из дома.

Следующим шагом является запуск оболочки python, запуск этого кода

 >>> from flaskr import init_db >>> init_db() 

Это оно.

  • Сплит RSS RSS-строка с использованием Python
  • импортировать sqlite3 с Python2.7 на Heroku
  • Слияние файлов SQLite в один файл db и вопрос «начало / фиксация»
  • Отсутствует таблица при запуске Django Unittest с Sqlite3
  • Проектирование хранилища для очень большого игрового мира
  • Python прописывает в sqlalchemy
  • Python / SQLite сохраняет списки как двоичные файлы (blobs)
  • не может видеть записи, вставленные в тестовый пример django
  • Python - лучший язык программирования в мире.