引言:想使用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 table
class 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 os basedir = 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_app
from .. import db
from ..models import User
from . 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表就创建完毕了, 虽然简单做起来还是遇到了一些小麻烦,多学习多学习。

flask-日料网站搭建-数据库操作的更多相关文章

  1. flask-日料网站搭建-后台登录

    引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互,今天教大家实现后台登录功能,比较简单. 本节知识:表单标签,表单验证,数据查询,模板 pytho ...

  2. flask-日料网站搭建

    引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互. 本节知识:搭建web目录,目前正在copy网站. python环境:python2.7,fla ...

  3. flask-日料网站搭建-ajax传值+返回json字符串

    引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互,今天教大家实现ajax操作,返回json. 本节知识:jquery,json,ajax pyth ...

  4. 【Django】Django model与数据库操作对应关系(转)

    Django对数据库的操作分用到三个类:Manager.QuerySet.Model. Manager的主要功能定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manag ...

  5. 数据库操作(使用FMDB)

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  6. Python框架学习之Flask中的数据库操作

    数据库操作在web开发中扮演着一个很重要的角色,网站中很多重要的信息都需要保存到数据库中.如用户名.密码等等其他信息.Django框架是一个基于MVT思想的框架,也就是说他本身就已经封装了Model类 ...

  7. net core Webapi基础工程搭建(六)——数据库操作_Part 1

    目录 前言 SqlSugar Service层 BaseService(基类) 小结 前言 后端开发最常打交道的就是数据库了(静态网站靠边),上一篇net core Webapi基础工程搭建(五)-- ...

  8. 03 flask数据库操作、flask-session、蓝图

    ORM ORM 全拼Object-Relation Mapping,中文意为 对象-关系映射.主要实现模型对象到关系数据库数据的映射. 1.优点 : 只需要面向对象编程, 不需要面向数据库编写代码. ...

  9. flask数据库操作

    Python 数据库框架 大多数的数据库引擎都有对应的 Python 包,包括开源包和商业包.Flask 并不限制你使用何种类型的数据库包,因此可以根据自己的喜好选择使用 MySQL.Postgres ...

随机推荐

  1. CentOS 7 安装.NET Core 2.0

    一.添加dotnet产品Feed 在安装.NET Core之前,您需要注册Microsoft产品Feed. 这只需要做一次. 首先,注册Microsoft签名密钥,然后添加Microsoft产品Fee ...

  2. Redis 订阅发布 - Jedis实现

    Redis 订阅发布 - Jedis实现 我想到使用Redis的订阅发布模式是用来解决推送问题的-. 对于概念性的叙述,多多少少还是要提一下的: ​ 什么是Redis发布订阅?Redis发布订阅是一种 ...

  3. 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据

    § 封装网络请求及 mock 数据 本文配套视频地址: https://v.qq.com/x/page/i05544fogcm.html 开始前请把 ch2-3 分支中的 code/ 目录导入微信开发 ...

  4. OC学习16——对象归档

    转载自  OC学习篇之---归档和解挡 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOutputStream来进行操作的.当然在操作的这些对象都 ...

  5. lua的通用print函数

    1.前言 最近在做关于openresty方面的工作,涉及到lua脚本语言,经常需要打日志查看内容.普通的print函数遇到nil或table时,非常无力.而项目中的代码经常遇到参数为nil或table ...

  6. php trim源码分析

    本文同时发表于https://github.com/zhangyachen/zhangyachen.github.io/issues/9 核心代码如下: /* {{{ php_trim() * mod ...

  7. ArcGIS API for JavaScript 4.2学习笔记[11] 官方第五章Popups(弹窗)概览与解释

    直接跳过第三第四章了,第三章Layer和第四章可视化,怎么说呢,Layer是组织数据的,是Map的属性之一.可视化属于符号化编程,暂时不看. 第五章是对数据.结果的显示,类似于alert()..NET ...

  8. Mac下nvm管理node.js版本问题

    本篇文章主要是针对已经安装了node.js和nvm管理工具小伙伴遇到的问题. 管理工具有两个,一个是nvm,还有一个是nnvm的好处就是可以管理多个node版本,而且可以切换想要的版本,可以安装一个稳 ...

  9. vue链接传参与路由传参

    1.链接传参: 例如:链接是:http://localhost:3333/#/index?id=001 我们要获取参数:console.log(this.$route.query.id):即可 2.路 ...

  10. SQL2005 到 SQL2008R2 发布订阅----发布'xxxxx'的初始快照尚不可用。

    步骤略! SQL2005 到 SQL2008R2 发布订阅----发布'xxxxx'的初始快照尚不可用. 发布库快照已经创建完成为什么到订阅就快照不可用呢! 订阅通过日志读取代理解析! 查了下代理安全 ...