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 ...
随机推荐
- 一文说通Dotnet Core的中间件
前几天,公众号后台有朋友在问Core的中间件,所以专门抽时间整理了这样一篇文章. 一.前言 中间件(Middleware)最初是一个机械上的概念,说的是两个不同的运动结构中间的连接件.后来这个概念 ...
- css定位和css3的基本
定位方式:position需要搭配left|right |top |bottom 1.相对定位:相对于自身的位置进行偏移position: relative; 2.绝对定位:相对于有position属 ...
- Shell 脚本(五) Shell 工具 及 企业面试题
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 十.Shell工具(重点) 1.cut cut 的工作就是“剪”,具体的说就是在文件中负责剪切数据用的. ...
- Java实现 LeetCode 374 猜数字大小 II
375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...
- 【JavaScript】原生js实现:强制保留2位小数(由于toFixed()报错)
function decimal(x) { var f = parseFloat(x); if (isNaN(f)) { alert("请输入数字!"); return; } va ...
- iOS-Core Foundation框架到Foundation桥接的三种方式
温故知新.勤总结,才能生巧!这次总结一下 :Core Foundation框架到Foundation桥接的三种方式 Foundation提供OC的基础类(像NSObject).基本数据类型等. Cor ...
- 03-Python基础2
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...
- multimap遍历与查找
std::multimap<int, std::string> m; m.insert(std::make_pair(0, "w0")); m.insert(std:: ...
- lei muban
#include<iostream> using namespace std; template <typename T> class Operator{ public: T ...
- 01 . Docker原理部署及常用操作命令
Docker的来源及构造: 容器是一种基础工具:泛指任何用于容纳其他物品的工具,可以部分或完全封闭,被用于容纳,储存,运输物品: 物品可以被放置在容器中,而容器可以保护内容物: 人类使用容器的历史有十 ...