Flask项目实战:创建电影网站-创世纪(1)
以后要养成写博客的习惯,用来做笔记。本人看的东西很多很杂,但因为工作中很少涉及,造成看了之后就忘,或者看了就看了,但是没有融入的自己的知识体系里面。
写博客一方面是做记录,一方面是给这段时间业余学习的一个总结。
首先贴一下我的git地址,也是这个项目的源码:https://github.com/aaja/pythonflask-movies
本项目来源慕课网。
参照这个代码
https://github.com/mtianyan/movie_project
#1.项目结构创建#

# 2.入口设置,以及蓝图
====manage.py 项目入口
# coding:utf8
from app import app if __name__ =='__main__':
app.run(); ====app目录下__init__.py
创建蓝图,初始化一些配置,设置404.(我理解蓝图就是个大路由,错了就错了,反正不懂)
# _*_ coding: utf-8 _*_ from flask import Flask,render_template
from flask_sqlalchemy import SQLAlchemy
import pymysql app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql+pymysql://root:root@127.0.0.1:3306/movie'
#如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] =True
app.config["SECRET_KEY"] = "7a9f1b6321d347e09485695eb4139ac5"
app.debug = True
db = SQLAlchemy(app) from app.home import home as home_blueprint
from app.admin import admin as admin_blueprint app.register_blueprint(home_blueprint)
app.register_blueprint(admin_blueprint, url_prefix="/admin")
@app.errorhandler(404)
def page_not_found(error):
return render_template('home/404.html'),404
====
# 3.制作前段页面
`home/views.py`
# _*_ coding: utf-8 _*_ from . import home
from flask import render_template,redirect,url_for @home.route("/")
def index():
return render_template("home/index.html") @home.route("/login/")
def login():
"""
登录
"""
return render_template("home/login.html") @home.route("/logout/")
def logout():
"""
退出登录
"""
# 重定向到home模块下的登录。
return redirect(url_for('home.login'))
然后templates目录下有对应的界面;
#4.制作后台界面
# _*_ coding: utf-8 _*_ from . import admin
from flask import render_template,redirect,url_for,flash,session,request
from app.admin.forms import LoginForm,TagForm
from app.modules import Admin,Tag
from functools import wraps
from app import db def admin_login_req(f):
@wraps(f)
def decorated_function(*args,**kwargs):
if "admin" not in session :
return redirect(url_for("admin.login",next=request.url))
return f(*args,**kwargs)
return decorated_function @admin.route("/")
@admin_login_req
def index():
return render_template('admin/index.html') @admin.route('/login/',methods=["POST","GET"])
def login():
form = LoginForm()
if form.validate_on_submit():
data = form.data
admin = Admin.query.filter_by(name=data['account']).first()
if not (admin and admin.check_pwd(data['pwd'])):
flash("账号或密码错误")
return redirect(url_for('admin.login'))
session['admin'] = data['account']
return redirect(url_for('admin.index'))#request.args.get('next') or
return render_template('admin/login.html',form = form) @admin.route('/logout/')
def logout():
session.pop('admin',None)
return redirect(url_for('admin.login'))
#5.模板代码中基本结构都是html里面嵌入某语言代码;
like下面
{% extends 'admin/admin.html' %}
{%block content%}
{% endblock %}
{%block js%}
{% endblock %}
{{url_for('home.user')}}
{{ url_for('static',filename='')}}
上面admin.html留下内容空白
{%block content%}
{% endblock %}
,然后在页面里面
{%block content%}
helloworld,这里加入的东西会插入到上面留的空里面。
{% endblock %}
Flask项目实战:创建电影网站-创世纪(1)的更多相关文章
- KNN算法项目实战——改进约会网站的配对效果
KNN项目实战——改进约会网站的配对效果 1.项目背景: 海伦女士一直使用在线约会网站寻找适合自己的约会对象.尽管约会网站会推荐不同的人选,但她并不是喜欢每一个人.经过一番总结,她发现自己交往过的人可 ...
- Python框架 Flask 项目实战教程
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...
- FastAPI小项目实战:电影列表(Vue3 + FastAPI)
假期过半, FastAPI + Vue3项目实战 视频也算录完了,尽管项目简单(2张表 共7个接口 4个页面) 起因 在6月底的时候开始录制了FastAPI官方文档中的新手教程部分(实际还没有官网文档 ...
- Flask项目实战:创建电影网站(2)
flask网站制作后台时候常见流程总结 安利一个神神器: 百度脑图PC版 创建数据库 下面是创建User数据库,需要导入db库 #coding:utf8 from flask import Flask ...
- Flask项目实战:创建电影网站(3)后台的增删改查
添加预告 根据需求数据库创建表格 需求数据库,关键字title logo # 上映预告 class Preview(db.Model): __tablename__ = "preview&q ...
- flask项目实战--论坛
项目结构搭建 1:用pycharm创建flask bbs项目 2:分别创建config.py.exts.py.models.py.manage.py文件 创建一个apps包存放前台,后台,公共的模块 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_6-3.微信网站扫码支付介绍
笔记 3.微信网站扫码支付介绍 简介:讲解微信网页扫码支付 1.扫码支付文档:https://pay.weixin.qq.com/wiki/doc/api/native.php ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_汇总
2018年Spring Boot 2.x整合微信支付在线教育网站高级项目实战视频课程 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在 ...
- Flask项目之手机端租房网站的实战开发(三)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/8 ...
随机推荐
- Java实现 蓝桥杯VIP 算法提高 数字黑洞
算法提高 数字黑洞 时间限制:1.0s 内存限制:256.0MB 问题描述 任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律: 1)将组成该四位数的四个数字由大到小排列,形成由这四个 ...
- java实现第八届蓝桥杯数位和
数位和 题目描述 数学家高斯很小的时候就天分过人.一次老师指定的算数题目是:1+2+-+100. 高斯立即做出答案:5050! 这次你的任务是类似的.但并非是把一个个的数字加起来,而是对该数字的每一个 ...
- java实现第四届蓝桥杯三部排序
三部排序 题目描述 一般的排序有许多经典算法,如快速排序.希尔排序等. 但实际应用时,经常会或多或少有一些特殊的要求.我们没必要套用那些经典算法,可以根据实际情况建立更好的解法. 比如,对一个整型数组 ...
- Spring Cloud 系列之 Apollo 配置中心(四)
本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Apollo 配置中心(一) Spring Cloud 系列之 Apollo 配置中心(二) Spring Clou ...
- 欧几里得算法求最大公约数-《Algorithms Fourth Edition》第1章
最大公约数(Greatest Common Divisor, GCD),是指2个或N个整数共有约数中最大的一个.a,b的最大公约数记为(a, b).相对应的是最小公倍数,记为[a, b]. 在求最大公 ...
- 1.keras-构建基本简单网络实现线性回归
构建基本简单网络实现线性回归 1.创建数据绘制散点图 import keras import numpy as np import matplotlib.pyplot as plt from kera ...
- Python脚本批量修改服务器密码
搭建环境 centos 7.4 使用脚本 python 批量修改connect用户的密码 生成密码为随机密码 保存为xls文档 passwd_chang #!/usr/bin/env python ...
- 新Mac电脑pycharm爬虫环境安装与配置
*需要安装的软件:Pycharm.Squel pro.mysql.redis等. 1.下载安装pycharm. 2.下载安装item2. 3.安装brew:'ruby -e "$(curl ...
- 将XML转换为JSON并强制数组
string xml = @"<person id='1'> <name>Alan</name> <url>http://www.google ...
- 传递函数-微分方程-差分方程-Matlab阶跃响应曲线
Transfer function: 1 ------- 5 s + 1 写成微分方程: 5y'(t)+y(t)=u(t) 向前差分: 5y(k+1)+(T-5)y(k)=Tu(k) T:Sample ...