从flask视角学习angular

前端框架完全不懂。

看着angular中文官网的英雄编辑器教程和核心知识,用偷懒的类比法,从flask django的角度 记录一下自己对angular的理解.

app.module.ts

这个文件有点类似extends.py 在这里import各种依赖的插件。比如要双向绑定,就要import  FormsModule

import { NgModule }      from ‘@angular/core‘;
import { BrowserModule } from ‘@angular/platform-browser‘;
import { FormsModule }   from ‘@angular/forms‘; // <-- NgModel lives here

import { AppComponent }  from ‘./app.component‘;

@NgModule({
  imports: [
    BrowserModule,
    FormsModule // <-- import the FormsModule before binding with [(ngModel)]
  ],

@ngModule 类Flask的app,其他的component类似blueprint。在这里declarations里添加其他的component,类似 注册蓝图

import { NgModule }       from ‘@angular/core‘;
import { BrowserModule }  from ‘@angular/platform-browser‘;
import { FormsModule }    from ‘@angular/forms‘;

import { AppComponent }         from ‘./app.component‘;
import { DashboardComponent }   from ‘./dashboard.component‘;
import { HeroDetailComponent }  from ‘./hero-detail.component‘;
import { HeroesComponent }      from ‘./heroes.component‘;
import { HeroService }          from ‘./hero.service‘;

import { AppRoutingModule }     from ‘./app-routing.module‘;

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    AppRoutingModule
  ],
  declarations: [
    AppComponent,
    DashboardComponent,
    HeroDetailComponent,
    HeroesComponent
  ],
  providers: [ HeroService ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

类似

from flask import Flask

from scenario import scenario
from situation import situation
from posture import posture
from assistant import assistant
from do_action import do_action
from rule import rule

# ————————注册blueprint————————
app.register_blueprint(scenario)
app.register_blueprint(situation)
app.register_blueprint(posture)
app.register_blueprint(do_action)
app.register_blueprint(assistant)
app.register_blueprint(rule)

app = Flask(__name__)

app.component.ts

import { Component } from ‘@angular/core‘;

@Component({
  selector: ‘my-app‘,
  template: `
    <h1>{{title}}</h1>
    <nav>
      <a routerLink="/dashboard" routerLinkActive="active">Dashboard</a>
      <a routerLink="/heroes" routerLinkActive="active">Heroes</a>
    </nav>
    <router-outlet></router-outlet>
  `,
  styleUrls: [‘./app.component.css‘],
})
export class AppComponent {
  title = ‘Tour of Heroes‘;
}
@Component 相当于 flask里

1 /templates/每个blueprint下的用 jinja2 语法的XXX.html,2 /static/下的 css

区别在于:flask强调"动静分离"。这样部署的时候,static的东西用nginx, web api部分 用 gunicorn
angular 的component(有点类似Unity3d里的gameobject),把css 模板 都封装在了组件里,写在了代码里。
angular的“前后端”统统用ts/js搞了。这样开发者不需要太在乎“动静”与“前后"的分野。

Model部分

export class Hero {
  id: number;
  name: string;
}

类似 models.py定义的ORM类。可以送进模板用双括号访问属性 {{hero.name}}

ng的双向绑定很给力。

<div>
  <label>name: </label>
  <input [(ngModel)]="hero.name" placeholder="name">
</div>
时间: 2024-10-18 05:39:29

从flask视角学习angular的相关文章

从flask视角理解angular(三)ORM VS Service

把获取模型数据的任务重构为一个单独的服务,它将提供英雄数据,并把服务在所有需要英雄数据的组件间共享. @Injectable() export class HeroService { getHeroes(): void {} // stub } HeroService可以从任何地方获取Hero数据 —— Web服务.本地存储或模拟数据源. Service不是new()出来的 文档里给出了李菊福的理由: 我们的组件得弄清楚该如何创建HeroService. 如果有一天我们修改了HeroServic

Python——轻量级web服务器flask的学习

前言: 根据工程需要,开始上手另一个python服务器---flask,flask是一个轻量级的python服务器,简单易用.将我的学习过程记录下来,有新的知识会及时补充. 记录只为更好的分享~ 正文: 首先在Linux下搭建flask环境,详见如下安装步骤: 安装教程 安装好后只需要编写python程序即可,现在开始第一个flaskweb程序: from flask import Flask app = Flask(__name__) @app.route('/') def hello_wor

python web开发之flask框架学习(2) 加载模版

上次学习了flask的helloword项目的创建,这次来学习flask项目的模版加载: 第一步:创建一个flask项目 第二步:在项目目录的templates文件夹下创建一个html文件 第三步: 加载模版文件这里会用到flask包下的一个模版渲染器render_template因此要倒入这个render_template 第四步:运行项目就可以看到模版加载的效果了 以上就是flask框架的模版加载学习了,有什么问题欢迎留言! 简书地址: Code人生 原文地址:https://www.cnb

python flask框架学习(一)——准备工作和环境配置与安装

Flask装备: 学习自:知了课堂Python Flask框架——全栈开发 1.Python版本:3.6 2.Pycharm软件: 3.安装虚拟环境: (1)安装virtualenv: pip install virtualenv (2)安装virtualenvwrapper: windows: pip install virtualenvwrapper-win 4.virtualenvwrapper的使用 (1)创建虚拟环境 mkvirtualenv flask-env (2)切换到某个虚拟环

python flask框架学习——开启debug模式

学习自:知了课堂Python Flask框架——全栈开发 1.flask的几种debug模式的方法 # 1.app.run 传参debug=true app.run(debug=True) #2 设置app的配置 app = Flask(__name__) app.config['DEBUG'] = True #3 配置文件方式 # config.py中添加debug模式 DEBUG = True #app.py中引用配置 import config app.config.from_object

一起学习angular+bootstrap+MVC--之一,入门

这篇直奔MVVM主题,本例实现一个bootstrap的下拉框. 展示了如下技术: 1.MVVM绑定(事件绑定,值绑定,循环绑定,循环绑定中嵌套事件并回传item), 2.angul多module, 建议在webstrom下面运行 1.HTML代码 1 <!doctype html> 2 <!--suppress ALL --> 3 <html ng-app="appTow"> 4 <head> 5 <script src="

学习angular之:ng-app

刚开始自学angular,遇到一个问题: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="angular.min.js"></script&g

如何学习angular.js

AngularJS 是一个为动态WEB应用设计的结构框架. 它能让你使用HTML作为模板语言,通过扩展HTML的语法,让你能更清楚. 简洁地构建你的应用组件. 它的创新点在于,利用 数据绑定 和 依赖注入,它使你不用再写大量的代码了. 这些全都是通过浏览器端的Javascript实现,这也使得它能够完美地和任何服务器端技术结合.AngularJS是为了克服HTML在构建应用上的不足而设计的. HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了. 所以我做了一

学习angular.js的一些笔记想法(上)

1.data-ng-app与ng-app的区别 data-ng-app是为了h5不报错 2.ng-class 不多说就来拿例子说吧 html代码 <div class='color-changer' data-ng-class="{'color-changer-hiden':!colorChanger}"> </div> js代码: $scope.colorChanger=false; 此时的变量colorChanger=false,那么!colorChange