网站建设工作的函,怎么在年报网站做简易注销,wordpress php 得到页面描述,网站注册建设Flask-SQLAlchemy
MySQL是免费开源软件#xff0c;大家可以自行搜索其官网#xff08;https://www.MySQL.com/downloads/#xff09;
测试MySQL是否安装成功
在所有程序中#xff0c;找到MySQL→MySQL Server 5.6下面的命令行工具#xff0c;然后单击输入密码后回车大家可以自行搜索其官网https://www.MySQL.com/downloads/
测试MySQL是否安装成功
在所有程序中找到MySQL→MySQL Server 5.6下面的命令行工具然后单击输入密码后回车就可以知道MySQL数据库是否链接成功。
右击桌面上的“计算机”在弹出的快捷键菜单中选择“属性”“高级系统设置”“环境变量”在path里面添加MySQL bin目录的路径。选择环境变量在环境变量中的path路径下输入你的MySQL路径就行了。默认安装的路径是C:\MySQL\MySQL Server 5.6\bin
安装flask-sqlalchemy安装不了就更换豆瓣源 1 pip install flask-sqlalchemy 对象-关系映射实质 class Lib_card(db.Model):__tablename__ lib_cardid db.Column(db.Integer, primary_keyTrue, commentid号)card_id db.Column(db.Integer, nullableFalse, comment 借书证)book_id db.Column(db.Integer, db.ForeignKey(book.id))books db.relationship(Book, backrefdb.backref(cards),uselistFalse) 在Flask-SQLAlchemy中插入、修改、删除操作均由数据库会话管理
需要一个配置config.py USERNAME root #设置登录账号
PASSWORD 930103 #设置登录密码
HOST 127.0.0.1 #设置主机地址
PORT 3306 #设置端口号
DATABASE demo1 #设置访问的数据库
SQLALCHEMY_DATABASE_URI fmysqlpymysql://{USERNAME}:{PASSWORD}{HOST}:{PORT}/{DATABASE}#创建数据库连接示例
#动态追踪修改设置如未设置只会提示警告
SQLALCHEMY_TRACK_MODIFICATIONSFalse
#查询时会显示原始SQL语句
SQLALCHEMY_ECHO True 实例 from datetime import datetimefrom flask import Flask #导入Flask模块
from flask_sqlalchemy import SQLAlchemy #导入SQLAlchemy模块
import config #导入配置文件
app Flask(__name__) #Flask初始化
app.config.from_object(config) #配置文件实例化
#初始化一个对象
dbSQLAlchemy(app)class Book(db.Model):__tablename__ bookid db.Column(db.Integer, primary_key True,commentid号)title db.Column(db.String(50), nullableFalse,comment书名)publishing_office db.Column(db.String(100), nullableFalse,comment出版社)isbn db.Column(db.String(100), nullableFalse, commentisbn号)storage_time db.Column(db.DateTime, defaultdatetime.now(), comment入库时间)class Lib_card(db.Model):__tablename__ lib_cardid db.Column(db.Integer, primary_keyTrue, commentid号)card_id db.Column(db.Integer, nullableFalse, comment 借书证)book_id db.Column(db.Integer, db.ForeignKey(book.id))books db.relationship(Book, backrefdb.backref(cards),uselistFalse)with app.app_context():
#测试数据库连接是否成功db.create_all() #创建数据库# book1 Book(id9,title智能导论, publishing_office高等教育出版社,isbn9787040479844)# db.session.add(book1)# db.session.commit()# result Book.query.filter(Book.id 9).first()# print(result.title)# agine Book.query.filter(Book.title result.title).all()# for i in agine:# print(i.id)# db.session.delete(result)# db.session.commit()# card1Lib_card(card_id18001, book_id8)# card2Lib_card(card_id18002, book_id8)# db.session.add(card1)# db.session.add(card2)# db.session.commit()book_query Book.query.filter(Book.id 9).first()lib_card_query book_query.cardsfor i in lib_card_query:print(i.card_id)app.route(/)
def index():return index# if __name__ __main__:
# app.run(debugTrue) 注意一个表模型的定义必须要定义一个主键这个主键一般为id。在定义了Lib_card类后申明了一个外键并且在relationship方法中使用uselistFalse来约束其关系。book_id db.Column(db.Integer,db.ForeignKey(book.id))表示创建一个外键类型要跟主表一样通过db.ForeignKey(user.id)与主表绑定books db.relationship(Bookbackrefdb.backref(cards)uselistFalse)表示Book可以根据Lib_card中的借书证查找到book表中的信息,backrefcards表示book表可以直接通过cards查找到该书下的借书证号码。
框架实例
建一个apps文件夹添加一个admin包admin包下创建三个py文件
#__init__.py
#预加载模块内容
#其他地方调用的时候 可以直接from apps.admin import bp as admin_bp不用找到views
from .views import bp #forms.py
from flask_wtf import FlaskForm
from wtforms import *
from wtforms.validators import *class NameForm(FlaskForm):username StringField(用户名,validators[DataRequired()])password PasswordField(密码,validators[DataRequired()])submit SubmitField(提交) #models.py
from exts import dbclass User(db.Model):__tablename__ jq_useruid db.Column(db.Integer, primary_keyTrue)username db.Column(db.String(50), nullableFalse, comment用户名)password db.Column(db.String(100), nullableFalse,comment密码)email db.Column(db.String(50), nullableFalse, uniqueTrue, comment 邮箱) #views.py
from flask import Blueprint, request, flash, render_template
from apps.admin.forms import NameForm
from apps.admin.models import Userbp Blueprint(admin,__name__)bp.route(/admin,methods[GET,POST])
def index():form NameForm()if request.method POST:if form.validate_on_submit():username request.form.get(username)password request.form.get(password)result User.query.filter(User.usernameusername).first()if result and password result.password:flash(登录成功)else:return render_template(login.html, formform, errormsg登陆失败)return render_template(login.html, formform) 建一个文件夹templates专门放login.html文件通过render_template调用 !DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/titleh1用户注册登录/h1form methodpost action/test/admin{{ form.csrf_token()}}{{ form.username.label }}{{ form.username}}{{ form.password.label }}{{ form.password}}{{ form.submit }}{{errormsg}}{% for message in get_flashed_messages() %}{{ message }}{% endfor %}/form
/head
body/body
/html 建一个app.py from flask import Flask
from apps.admin import bp as admin_bp
from exts import db
from apps.common import bp as common_bp
from apps.front import bp as front_bp
from apps.admin.models import User
from apps.common.models import Bookdef create_app():app Flask(__name__)app.secret_key 123321#注册蓝图,注册时候可以设置前缀app.register_blueprint(admin_bp,url_prefix/test)app.register_blueprint(common_bp)app.register_blueprint(front_bp)app.config.from_object(config)# db.app appdb.init_app(app)return appif __name__ __main__:app create_app()with app.app_context():db.create_all()app.run(host127.0.0.1,port1314,debugTrue) 建一个config.py DEBUGTrue
USERNAME root #设置登录账号
PASSWORD 930103 #设置登录密码
HOST 127.0.0.1 #设置主机地址
PORT 3306 #设置端口号
DATABASE demo1 #设置访问的数据库
SQLALCHEMY_DATABASE_URI fmysqlpymysql://{USERNAME}:{PASSWORD}{HOST}:{PORT}/{DATABASE}#创建数据库连接示例
#动态追踪修改设置如未设置只会提示警告
SQLALCHEMY_TRACK_MODIFICATIONSFalse
#查询时会显示原始SQL语句
SQLALCHEMY_ECHO True 建一个exts.py
#encoding:utf-8
from flask_sqlalchemy import SQLAlchemy
dbSQLAlchemy()