flask-日料網站搭建-資料庫操作,flask-

來源:互聯網
上載者:User

flask-日料網站搭建-資料庫操作,flask-

引言:想使用python的flask架構搭建一個日料網站,主要包含web架構,靜態頁面,後台系統,互動,目前已經copy完首頁,不是前端太慢太慢。

本節知識:資料庫的操作,模型建表,更新資料庫。

python環境:python2.7,flask,以及flask相關的庫(沒有列完,如果運行manage.py時提示未安裝的庫安裝就ok了。)

上節已經把目錄搭建好了,目錄如下。

今天主要涉及到幾個檔案,config.py  app/modles.py  app/main/views.py以及migrations這個檔案夾

先把要建的資料庫和表先排出來,以及連結本機資料庫的使用者名稱和密碼:

user:root

password:root

port:localhost:3300

db:f_liaoli

table: admin表

-------------------------------------這是分割線-------------------

---先上模型的代碼app/modles.py

# -*- coding: utf-8 -*-from app import db###admin tableclass User(db.Model):    __tablename__ = 'admin'    id = db.Column(db.Integer, primary_key=True)    username = db.Column(db.String(64), unique=True, index=True)    password = db.Column(db.String(128))    def __init__(self, UserCode=None, Password=None):        self.username = username        self.password = password    def __repr__(self):        return '<User %r>' % self.userName

3個欄位比較簡單,用來測試嘛,足夠了。

---再看config.py

# -*- coding: utf-8 -*-import osbasedir = os.path.abspath(os.path.dirname(__file__))# 基類class Config:    SECRET_KEY = 'hard to guess string'    SQLALCHEMY_COMMIT_ON_TEARDOWN = True    FLASKY_MAIL_SUBJECT_PREFIX = '[Flask]'    FLASKY_MAIL_SENDER = 'Flask Admin'    FLASKY_ADMIN = 'dimples'    @staticmethod    def init_app(app):        pass# 開發環境class DevelopmentConfig(Config):    DEBUG = True    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@localhost:3306/f_liaoli?charset=utf8'    SQLALCHEMY_TRACK_MODIFICATIONS = False# 測試環境class TestingConfig(Config):    TESTING = True    SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'data-test.sqlite')# 生產環境class ProductionConfig(Config):    SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')# 設定一個config 字典中,註冊了不同的配置環境config = {    'development': DevelopmentConfig,    'testing': TestingConfig,    'production': ProductionConfig,    'default': DevelopmentConfig    }

主要看開發環境那個class,這是連結資料庫的語句,居然要和pymysql一起用,mmp我用mysql試了半天,很尷尬。

------app/main/views

# -*- coding: utf-8 -*-from flask import render_template, session, redirect, url_for, current_appfrom .. import dbfrom ..models import Userfrom . import main@main.route('/', methods=['GET', 'POST'])def index():    return render_template('index.html')@main.route('/admin/login', methods=['GET', 'POST'])def Alogin():    return render_template('admin/login.html')@main.route('/admin/', methods=['GET'])def Aindex():    return render_template('admin/index.html')
##from ..models import *  這個需要寫上,否則也建立不了。
---------------這是分割線-----------------
準備工作完畢之後開始測試了
進入manage.py目錄 執行python manage.py db init

提示migrations檔案夾已經存在,拿我們去吧這個刪除了。

刪一下再執行。

運行之後,本地也建立了該檔案夾。

--執行python manage.py db migrate -m "inition migrate"

---執行python manage.py db upgrade

 

 

到此admin表就建立完畢了, 雖然簡單做起來還是遇到了一些小麻煩,多學習多學習。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.