初入Django1

1、JS 正则

 test   - 判断字符串是否符合规定的正则
  rep = /\d+/;
  rep.test("asdfoiklfasdf89asdfasdf")
  # true
  
  rep = /^\d+$/;
  rep.test("asdfoiklfasdf89asdfasdf")
  # true
  
 exec   - 获取匹配的数据
  rep = /\d+/;
  str = "wangshen_67_houyafa_20"
  rep.exec(str)
  # ["67"]
  
  JavaScript is more fun than Java or JavaBeans!
  var pattern = /\bJava(\w*)\b/;
  # ["JavaScript", "Script"]
  
  
  JavaScript is more fun than Java or JavaBeans!
  var pattern = /\bJava\w*\b/g;
  # ["JavaScript"]
  # ["Java"]
  # ["JavaBeans"]
  # null
  
  JavaScript is more fun than Java or JavaBeans!
  var pattern = /\bJava(\w*)\b/g;
  # ["JavaScript",'Script']
  # ["Java", ""]
  # ["JavaBeans", "Beans"]
  # null
  
 多行匹配:
  默认就是多行匹配
  ^$
   - 登录注册验证
  默认事件先执行:
   checkbox
  自定义先执行
   a
   submit
   ...
  <form>
   
   <input type='type' />
   <input type='password' />
   <input type='submit' />
   
  </form>
  
  $(':submit').click(function(){
   
   $(':text,:password').each(function(){
    ...
    return false;
   })
   return false;
  })  
  
  input,checbox
  
    ================================== 验证 ================================
 JS: 验证
  
   各种验证
  
   $(':submit').click(function(){
    
    $(':text,:password').each(function(){
     ...
     return false;
    })
    return false;
   })  
 
 
 后端:python实现
 
 业务处理
 ....
 
2、组件

 BootStrap
  - css
  - js
 学习 BootStrap 规则
 
 一、响应式
  @media
  
 二、图标、字体
  @font-face
  
 三、基本使用
  
 
 ========》 后台管理
 
 jQueryUI *
  - css
  - js
 学习 jQueryUI 规则
 
 
 EasyUI
  - css
  - js
  
 学习 jQueryUI 规则
 ============ Ajax操作 ================
 
 
 
 
3、WEB框架
 MVC
  Model       View       Controller
  数据库   模板文件    业务处理
 
 
 MTV
  Model    Template     View
  数据库   模板文件    业务处理
 
 
 ############## WEB:MVC、MTV
 
4、Django
 
 pip3 install django
 
 
 C:\Python35\Scripts
 
 # 创建Django工程
 django-admin startproject 【工程名称】
 
  mysite
   - mysite        # 对整个程序进行配置
    - init
    - settings  # 配置文件
    - url       # URL对应关系
    - wsgi      # 遵循WSIG规范,uwsgi + nginx
   - manage.py     # 管理Django程序:
        - python manage.py
        - python manage.py startapp xx
        - python manage.py makemigrations
        - python manage.py migrate
  
  
  
 # 运行Django功能
 python manage.py runserver 127.0.0.1:8001
 
 
 chouti
  - chouti
   - 配置
  - 主站 app
  - 后台管理 app
 
 
 
 # 创建app
 python manage.py startapp cmdb
 python manage.py startapp openstack
 python manage.py startapp xxoo....
 
 
 app:
  migrations     数据修改表结构
  admin          Django为我们提供的后台管理
  apps           配置当前app
  models         ORM,写指定的类  通过命令可以创建数据库结构
  tests          单元测试
  views          业务代码
 
 
 
 1、配置模板的路径
 
  TEMPLATES = [
    {
     'BACKEND': 'django.template.backends.django.DjangoTemplates',
     'DIRS': [os.path.join(BASE_DIR, 'templates')],
     'APP_DIRS': True,
     'OPTIONS': {
      'context_processors': [
       'django.template.context_processors.debug',
       'django.template.context_processors.request',
       'django.contrib.auth.context_processors.auth',
       'django.contrib.messages.context_processors.messages',
      ],
     },
    },
   ]
 2、配置静态目录
  static
 
  STATICFILES_DIRS = (
   os.path.join(BASE_DIR, 'static'),
  )
  
  <link rel="stylesheet" href="/static/commons.css" />
 
内容整理
 1. 创建Django工程
   django-admin startproject 工程名
 2. 创建APP
  cd 工程名
  python manage.py startapp cmdb
 3、静态文件
  project.settings.py
  
  STATICFILES_DIRS = (
   os.path.join(BASE_DIR, "static"),
  )
 
 4、模板路径
 
  DIRS ==>    [os.path.join(BASE_DIR,'templates'),]
  
 5、settings中
  
  middlerware
  
   # 注释 csrf
   
   
 6、定义路由规则
  url.py
  
   "login" --> 函数名
   
 7、定义视图函数
  app下views.py
   
   def func(request):
    # request.method   GET / POST
    
    # http://127.0.0.1:8009/home?nid=123&name=alex
    # request.GET.get('',None)   # 获取请求发来的而数据
    
    # request.POST.get('',None)
    
    
    # return HttpResponse("字符串")
    # return render(request, "HTML模板的路径")
    # return redirect('/只能填URL')
    
 8、模板渲染
  特殊的模板语言
  
   -- {{ 变量名 }}
  
    def func(request):
     return render(request, "index.html", {'current_user': "alex"})
  
     
    index.html
    
    <html>
    ..
     <body>
      <div>{{current_user}}</div>
     </body>
    
    </html>
    
    ====> 最后生成的字符串
    
    <html>
    ..
     <body>
      <div>alex</div>
     </body>
    
    </html>
   -- For循环
    def func(request):
     return render(request, "index.html", {'current_user': "alex", 'user_list': ['alex','eric']})
  
     
    index.html
    
    <html>
    ..
     <body>
      <div>{{current_user}}</div>
      
      <ul>
       {% for row in user_list %}
       
        {% if row == "alex" %}
         <li>{{ row }}</li>
        {% endif %}
        
       {% endfor %}
      </ul>
      
     </body>
    
    </html>
    
   #####索引#################
    def func(request):
     return render(request, "index.html", {
        'current_user': "alex",
        'user_list': ['alex','eric'],
        'user_dict': {'k1': 'v1', 'k2': 'v2'}})
  
     
    index.html
    
    <html>
    ..
     <body>
      <div>{{current_user}}</div>
      
      <a> {{ user_list.1 }} </a>
      <a> {{ user_dict.k1 }} </a>
      <a> {{ user_dict.k2 }} </a>
      
     </body>
    
    </html>
   
   ###### 条件
   
    def func(request):
     return render(request, "index.html", {
        'current_user': "alex",
        "age": 18,
        'user_list': ['alex','eric'],
        'user_dict': {'k1': 'v1', 'k2': 'v2'}})
  
     
    index.html
    
    <html>
    ..
     <body>
      <div>{{current_user}}</div>
      
      <a> {{ user_list.1 }} </a>
      <a> {{ user_dict.k1 }} </a>
      <a> {{ user_dict.k2 }} </a>
      
      {% if age %}
       <a>有年龄</a>
       {% if age > 16 %}
        <a>老男人</a>
       {% else %}
        <a>小鲜肉</a>
       {% endif %}
      {% else %}
       <a>无年龄</a>
      {% endif %}
     </body>
    
    </html>
 
 
 
XXOO管理:
 MySQL
 SQLAlchemy
 主机管理(8列):
  IP
  端口
  业务线
  ...
  
 用户表:
  用户名
  密码
 
 功能:
  1、 登录
  2、主机管理页面
   - 查看所有的主机信息(4列)
   - 增加主机信息(8列) ** 模态对话框
  3、查看详细
   url:
    "detail" -> detail
  
   def detail(reqeust):
    nid = request.GET.get("nid")
    v = select * from tb where id = nid
    ...
  4、删除
   del_host -> delete_host
   
   def delete_host(request):
    nid = request.POST.get('nid')
    delete from tb where id = nid
    return redirect('/home')
   
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
GeoPandas是一个开源的Python库,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python库,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其中存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其中至少一列是几何列(geometry column),用于存储地理空间几何图形(如点、线、多边形等)。 GeoSeries:GeoPandas中的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据源中加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括点、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等库来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值