• python代码自动补全配置及Django入门Demo


    django入门代码示例小博客:https://pan.baidu.com/s/1pLjLPSv

    1.自动补全功能

    许多人都知道 iPython 有很好的自动补全能力,但是就未必知道 python 也同样可以 Tab 键补全,
    您可以在启动 python 后,执行下

    import readline, rlcompleter; readline.parse_and_bind("tab: complete") 

    这就可以按 Tab 键补全了。

    python 自启动
    如果您嫌每次都要键入这东西麻烦的话,可以把上边这行写到 ~/.pythonstartup.py ,
    再 ~/.bashrc 里加一个环境变量

    export PYTHONSTARTUP=~/.pythonstartup.py这就会每次启动 python 都先执行了

    2.安装python web开发框架django,当然也可以安装轻量级的web.py flask等

    Django1.11.4 下载

    下载完后解压及安装:

    1. tar -zxvf Django-1.11 
    2. cd Django-1.11 
    3. sudo python setup.py install 

    若出现ImportError: No module named setuptools ,则安装包管理工具setuptools模块

    wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
    tar zxvf setuptools-0.6c11.tar.gz
    cd setuptools-0.6c11
    python setup.py build
    python setup.py install
     
    测试是否安装成功,在命令行输入python进入python shell:
     
    1. >>> import django  
    2. >>> print django.get_version()  
    3. 1.11 
    设置好用户密码之后,我们需要选择一个python链接mysql的库.
    1. MySQLdb 依赖于Mysql库
    2. mysql-connector-python 依赖于python
    这里选择安装一个mysqldb模块,用于python连接mysql数据库使用。我们首先要找一下这个模块在哪里个包里,可以通过以下命令查看
     
    1. apt-cache search MySQLdb  

    然后会显示:
     
    1. bibus - bibliographic database  
    2. eikazo - graphical frontend for SANE designed for mass-scanning  
    3. python-mysqldb-dbg - A Python interface to MySQL (debug extension)  
    4. python-mysqldb - A Python interface to MySQL  这样我们可以通过安装python-mysqldb来安装这个模块: sudo apt-get install python-mysqldb
    [举重若轻]python+django+mysql web开发入门学习之hello world
    
    1. 创建项目:
    django-admin startproject QASearching
     
    如果系统找不到django-admin.py命令,可以到python的bin目录下查找。这个命令会创建一个项目目录QASearching,它下面的目录详情如下:
     
    ├── manage.py  
    └── QASearching  
        ├── __init__.py  
        ├── settings.py  
        ├── urls.py  
        └── wsgi.py  
    
    manage.py:包含了所有与项目交互的命令,比较启动服务器、连接数据库、打开shell等功能;
     
    
    QASearching/__init__.py:是项目的初始文件,一开始是一个空的文件;
    
    QASearching/settings.py:是项目的配置文件 ,如数据库连接、模板地址等;
    
    QASearching/urls.py:是项目的url映射文件,可以指定哪些url由哪些module来处理,类似于apache的httpd.conf文件;
    
    QASearching/wsgi.py:Python的web服务器网关服务中间件。
    
    指定ip
    vi settings.py
    
    ###########
    
    DEBUG = False
    
    ALLOWED_HOSTS = [
    '127.0.0.1',
    'localhost',
    ]
    
    ########
    简单测试:
    $ python manage.py runserver
    127.0.0.1:8081

    2. 创建APP:

    在每个django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。

    
    

    所有的APP共享项目资源。

    
    

      在pycharm下方的terminal终端中输入命令:

    
    

      $ python manage.py startapp mydiary

    
    

      这样就创建了一个叫做mydiary的APP,django自动生成“mydiary”文件夹。

    3. 编写业务处理逻辑
    业务处理逻辑都在views.py文件里。编辑mydiary下的views.py
    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.shortcuts import render
    
    # import HttpResponse
    from django.shortcuts import HttpResponse
    # Create your views here.
    
    def index(requst):
        """不能直接返回字符串,必须由类HttpResponse封装起来,这是django规则,不是python规则"""
        return HttpResponse("hello world!")
    View Code

    4. 编写路由
    路由都在urls文件里,它将浏览器输入的url映射到相应的业务处理逻辑
    编写项目QASearching下的QASearching目录下的urls.py
    # -*- coding:utf-8 -*-
    """QASearching URL Configuration
    
    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/1.11/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
    Class-based views
        1. Add an import:  from other_app.views import Home
        2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
    Including another URLconf
        1. Import the include() function: from django.conf.urls import url, include
        2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
    """
    from django.conf.urls import url
    from django.contrib import admin
    
    """导入对应app的views文件"""
    from mydiary import views
    
    """ admin后台的路由
    +自定义路由
    """
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^index/', views.index),
    ]
    urls.py
    
    

    5. 运行web服务

    为了使外部网络能够访问,可以编辑 QASearching/QASearching/settings.py 添加:

    ALLOWED_HOSTS = [
    u'192.168.1.103',
    u'localhost',
    u'127.0.0.1',
    ]

    $ python manage.py runserver 127.0.0.1:8080

     6. 连接数据库

    django通过自带的ORM框架操作数据库,并且自带轻量级的sqlite3数据库。

    在settings.py中注册mydiary应用,数据库能够据此给注册的app应用创建表.

    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'mydiary',
    ]
    View Code

    在mydiary的models.py中加入类UserInfo

    class UserInfo(models.Model):
        user = models.CharField(max_length=32)
        pwd = models.CharField(max_length=32)
        email = models.EmailField()
    View Code

    在pycharm的teminal中通过命令创建数据库的表了。有2条命令,分别是:

    $ python manage.py makemigrations

    或者 $ python manage.py makemigrations mydiary

    Migrations for 'mydiary':
    mydiary/migrations/0001_initial.py
    - Create model UserInfo

    $ python manage.py migrate

    或者 $ python manage.py migrate mydiary

    会创建一个mydiary_userinfo表,表中含有models.py中对应UserInfo类成员变量.

    创建admin后台管理用户:
    $ python manage.py createsuperuser

    富文本编辑器tinymce

  • 相关阅读:
    k8s学习
    k8s学习
    k8s学习
    Linux 常用命令(持续补充)
    通过一个小故事,理解 HTTPS 工作原理
    Spring Cloud 微服务架构全链路实践
    Spring Cloud Eureka 使用 IP 地址进行服务注册
    RabbitMQ 消息顺序、消息幂等、消息重复、消息事务、集群
    Spring Boot 实现 RabbitMQ 延迟消费和延迟重试队列
    RabbitMQ 集群原理和完善
  • 原文地址:https://www.cnblogs.com/guxuanqing/p/6039440.html
Copyright © 2020-2023  润新知