zoukankan      html  css  js  c++  java
  • web2py框架

    介绍:

    web2py是一种免费的、开源的web开发框架,采用python语言编写,并且可以使用python编程。

    MVC模式:模型Model、视图View、控制器Controller

    一、安装

    pip install web2py

    二、创建项目(Pycharm)

    1.选择File->New Project->Web2Py 输入Application name 后点击Create按钮

    2.左侧的树形栏中有web2py>applications 和 Web2py Library

    applications下面依次有admin、examples、创建项目文件夹、welcom 等文件夹

    Web2py Library是web2py的库文件

    3.项目文件夹中包含 文件夹:controllers, cron, languages, models, modules, private, static(方式静态文件css、 fonts、 images、 js), views

                                     文件:  __init__.py    ABOUT   LICENSE   routes.example.py

    4.一般情况下运行Web2py Library中的web2py.py文件即可运行整个程序框架

    三、配置项目

    1.选中树形目录中的web2py点击绿色的运行按钮,就会弹出一个输入server port和password的提示框,点击start server按钮

    2.这时浏览器会弹出本地服务http://127.0.0.1:8000/welcom/default/index

    3.点击admin按钮输入密码,进入admin页面

    点击任何一个文件夹,都会进入相应的程序当中

    4.examples

    一个示例

    5.NetworkAnalysis

    自己创建的应用程序

    6.welcom

    “welcome”应用程序是您在登录前看到的基本应用程序。http://127.0.0.1:8000/welcom/default/index

    工作流程

    111

    在图中:

    Server可以是web2py内置服务器或第三方服务器,例如Apache,服务器可以处理多线程

    Main是主要的WSGI应用,它负责处理所有常见任务和封装用户应用。它处理cookies、sessions、transactions、URL地址解析

    Model、View、Controller组件构成了用户应用。

    同一个web2py实例可以承载多个应用。

    虚线箭头表示与数据库引擎的通信。数据库查询可以使用SQL语言(不推荐)或使用web2py DAL语言(推荐),这样web2py应用代码不依赖于特定数据库引擎。

    四、网站构成

    在 application/MyWebPy(我的应用名)/static/ 目录下,是各种资源文件,如 css、 fonts、 images、 js 等。

    访问静态文件:http://127.0.0.1:8000/MyWebPy(项目名)/static/images/background.jpg

    -------------------------------------------

    在 application/MyWebPy(我的应用名)/controllers/ 目录下,是各种控制器文件。default.py 是默认的控制器文件,里面有各种函数。

    在浏览器里输入 http://127.0.0.1:8000/MyWebPy ,则会默认调用 default.py 控制器的 index() 函数。

    我们修改了index()函数里的返回参数,不需要重启服务器,只需刷新 http://127.0.0.1:8000/MyWebPy 页面,界面上的内容就会即刻改变,整个过程是热部署的。

    在 application/MyWebPy(我的应用名)/controllers/ 目录下新建 .py 控制器文件,并在index()方法里返回相应页面,则可定制网站。

    如 新建 jlaix.py ,在里面输入:def index(): return "这是我做的网站!"

    则在浏览器里输入 http://127.0.0.1:8000/MyWebPy/jlaix 则会显示页面,呈现"这是我做的网站!"的文字内容。

    ------------------------------------------

     在 application/MyWebPy(我的应用名)/views/ 目录下,是静态页面,.html

    -------------------------------------------

    在 application/MyWebPy(我的应用名)/cron/ 目录下,

    注册经常性的任务(通过cron)以定时和/或在特定的任务完成(action)之后执行。用这种方式将可能在后台运行耗时长的、计算量大的任务,而不影响用户浏览。

    --------------------------------------------

    在 application/MyWebPy(我的应用名)/databases/ 目录下,

    --------------------------------------------

    在 application/MyWebPy(我的应用名)/errors/ 目录下,

    --------------------------------------------

    在 application/MyWebPy(我的应用名)/languages/ 目录下,

    --------------------------------------------

    在 application/MyWebPy(我的应用名)/models/ 目录下,

    --------------------------------------------

    在 application/MyWebPy(我的应用名)/modules/ 目录下,

    --------------------------------------------

    在 application/MyWebPy(我的应用名)/private/ 目录下,

    --------------------------------------------

    在 application/MyWebPy(我的应用名)/sessions/ 目录下,

    --------------------------------------------

    在 application/MyWebPy(我的应用名)/uploads/ 目录下,

    ---------------------

    routs.example.py,是默认文档

    首先打开web2py项目,默认进入controllers文件夹下的default.py中的index()方法

    redirect(URL('文件名1‘,’方法名1’))    重定向到文件名1下的方法名1中

    http://127.0.0.1:8000/NetworkAnalysis/project/sda_get_source_ip?project_name=OCBC

    例如访问这个URL,NetworkAnalysis是项目名称,project是controller下的一个project.py文件,sda_get_source_ip是project.py文件中的函数名

    ?project_name=OCBC是传递的参数,在sda_get_source_ip函数中需要用request.vars.get('project_name')来获取它的值

    也可以URL为http://127.0.0.1:8000/NetworkAnalysis/project/sda_get_source_ip,参数为{"project_name"="OCBC"}  来传递,等价上面的方式,同样用request.vars.get('project_name')来获取参数的值

    想要拼接路径 project_dir = os.path.abspath("%s/private/sda_analysis/%s" % (request.folder, project_name.upper()))    #request.folder为项目绝对地址

    这两种方式都可以用postman测试

  • 相关阅读:
    WEBAPP开发技巧(手机网站开发注意事项)
    2014阿里前端线上笔试题
    [NOIp2008] 双栈排序 (二分图染色 + 贪心)
    [NOIp2012] 国王游戏(排序 + 贪心 + 高精度)
    关于错排公式以及扩展的一些小结论
    [NOI2009]诗人小G(dp + 决策单调性优化)
    Codeforces Round #429 (Div. 1) C. On the Bench(dp + 组合数)
    Educational Codeforces Round 33 (Rated for Div. 2) F. Subtree Minimum Query(主席树合并)
    Codeforces Round #511 (Div. 1) C. Region Separation(dp + 数论)
    Codeforces Round #471 (Div. 2) F. Heaps(dp)
  • 原文地址:https://www.cnblogs.com/zz27zz/p/8558835.html
Copyright © 2011-2022 走看看