python Django、flask 项目开发、flask设置缓存 2023

安装 Django

import django
print(django.get_version())

创建项目

django-admin startproject mysite

这些目录和文件的用处是:

  • 最外层的 mysite/ 根目录只是你项目的容器, 根目录名称对 Django 没有影响,你可以将它重命名为任何你喜欢的名称。
  • manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin 和 manage.py 获取所有 manage.py 的细节。
  • 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls).
  • mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识
  • mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。
  • mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口。阅读 如何使用 ASGI 来部署 了解更多细节。
  • mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。

然后进入site目录

cd site

py manage.py runserver

更换端口

py manage.py runserver 8080

py manage.py runserver 0.0.0.0:8000
服务器运行
py manage.py runserver 0.0.0.0:12345

创建投票应用

项目 VS 应用

项目和应用有什么区别?应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者小型的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用

请确定你现在处于 manage.py 所在的目录下,然后运行这行命令来创建一个应用:

py manage.py startapp polls

编写第一个视图

让我们开始编写第一个视图吧。打开 polls/views.py,把下面这些 Python 代码输入进去:

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

这是 Django 中最简单的视图。如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。

为了创建 URLconf,请在 polls 目录里新建一个 urls.py 文件。你的应用目录现在看起来应该是这样:

在 polls/urls.py 中,输入如下代码:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

安装Flask

模板:

from flask import Flask, render_template, request
import fangfa
app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST' and request.form['text']:
        text = request.form['text']

        print(text)
        return render_template('index.html')

    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

<form method="post">

		<textarea class="textarea1" name="text" placeholder="Enter text here"></textarea>
		选择类型:<select name="choice">
            <option value="option1">option1</option>
            <option value="option2">option2</option>
        </select>
        <button type="submit">Submit</button>

    </form>

动态URL参数类型

from flask import Flask

app = Flask(__name__)

@app.route('/str/<id>')
def r_str(id):
    print(f'接收到了{id}文章')
    print(type(id))
    return f'返回{id}的文章'

post、get请求

Flask中的网页数据url设置、数据传递和数据显示相关设置_flask中url加后缀.html_水月灯花的博客-CSDN博客

https://www.cnblogs.com/J-JUN/p/16166052.html

https://www.cnblogs.com/yoyoketang/p/16610827.html

Flask模板渲染与Get和Post请求详细介绍_python_脚本之家

【flask进阶】Flask实现自定义分页(python web通用)-阿里云开发者社区

python flask音频流/文件服务

python flask音频流/文件服务_xp5xp6的博客-CSDN博客

常见问题:

图表不加载:

1.js没有加载(特别是map,可能会缺失)

2.设置style,太小不显示

<div id="bingtu" style="width: 100%;height:100%;"></div>

加载js、css:

静态文件放在static文件夹
<link rel="stylesheet" href="../static/css/province.css"/>

网页放在templates文件夹

Python flask关闭自动转义

flask 有3种方法可以关闭自动转义:

1、在Python文件中进行转义。先在 Markup 对象中进行转义,然后将它传送给模版。一般推荐使用这个方式。

from flask import Markup

result=Markup(result(params));

return render_template('xxx.html', result=result)

2、在模版文件中进行转义。通过 |safe 过滤器来表示字符串是安全的({{result|safe}})

渲染的时候 {{ result|safe }}

3、暂时禁用全局的自动转义功能。

{% autoescaping false %}

<p>autoescaping is disableed here

<p>` will_not_be_escaped `

{% endautoescape %}

可参考官方资料

http://flask-cn.readthedocs.org/en/latest/templating/

Flask如何在不重新启动的情况下,刷新修改过后的页面内容(热更新)

自动刷新

app.run(debug=True)

页面跳转

        return redirect('/login')

在 Flask 中使用 EventSource

 from flask import Flask, Response, render_template
 import time 
 app = Flask(__name__) 
 @app.route('/stream') 
 def stream(): 
    def generate(): 
        for i in xrange(10): 
            yield 'data: i = %d' % i time.sleep(.1) 
        
        return Response(generate(), mimetype='text/event-stream') 

@app.route('/') 
def index(): 
    return render_template('index.html') 

if __name__ == "__main__": 
    app.run(debug=True)

https://reality0ne.com/eventsource-in-flask/

Flask 缓存

Flask 本身不提供缓存,但是 Flask-Caching 扩展可以

Installation

Install the extension with the following command:

$ pip install Flask-Caching

Set Up

Cache is managed through a Cache instance:

from flask import Flask
from flask_caching import Cache

config = {
    "DEBUG": True,          # some Flask specific configs
    "CACHE_TYPE": "SimpleCache",  # Flask-Caching related configs
    "CACHE_DEFAULT_TIMEOUT": 300
}
app = Flask(__name__)
# tell Flask to use the above defined config
app.config.from_mapping(config)
cache = Cache(app)

使用:
        print(cache.get('huancun'))
        cache.set("huancun", 'huancun:'+ans)

https://wizardforcel.gitbooks.io/flask-extension-docs/content/flask-cache.html

常见问题

JS弹出新窗口被拦截的解决方法

JS弹出新窗口被拦截的解决方法 - 掘金

跳转页面及js打开新窗口的常用方式(含不被浏览器拦截) - 掘金

javascript打开新页面 关闭 js打开新窗口不跳转_恋上一只猪的技术博客_51CTO博客

小型web python全栈开发,Django框架仍然值得推荐
轻量的简洁框架flask依然是很好的选择,不管是用来做api还是全栈开发
异步高性能web框架fastapi和sanic都是不错的选择

·Web开发技术
·庞大的用户群体,最贴近用户的部分
·大数据的开发技术
·互联网战场的杀手
·自动化测试、运维的技术
·极大提高效率,降低人工成本
·AI开发技术
·让自动化更加的智慧
·物联网(micropython)
·各种设备的智慧互联
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值