zoukankan      html  css  js  c++  java
  • Django

    Django - day00

    0.写在最前面

    第一次接触Django,是在大三的做数据库课程设计的时候,当时好像还是1.8的版本,现转眼就到了2.0的版本。
    当时由于没太多的课,仅花了不到一周的时间就完成了作业,之间也使用了其它工具来尝试完成这个作业。
    第一次是在imooc上简单学习的,后来由于实在搜不到啥中文资源,于是就疯狂刷文档,有问题就上stackoverflow。
    现在回头再看,学习的曲线之低,除了python语言的言简意赅,也得益于Django的框架简洁,让我只关注于逻辑的实现。
    这次的重新学习,虽说是帮别人的忙,但也是有点自己的私心的,想借此机会能够重新认识一下Django,了解web服务器。

    1. 关于环境的配置

    1.1 安装的点滴
    环境是Django+Python3.5+mysql
    在环境搭建时需要使用python连接至mysql,在安装了mysql的情况下,需要配置mysqldb。若没安装,会出现如下错误提示

    D:workSpacepythondjango_start>python  manage.py runserver
    ...
    Traceback (most recent call last):
      File "D:usrPython35-32libsite-packagesdjangodbackendsmysqlase.py",
    line 15, in <module>
        import MySQLdb as Database
    ImportError: No module named 'MySQLdb'
    The above exception was the direct cause of the following exception:
    ...
    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
    Did you install mysqlclient?
    

    使用 pip install mysqlclient 安装即可,python2.*和3.*有异,这里不探究

    About mysqlclient
    python interface to MySQL
    https://github.com/PyMySQL/mysqlclient-python

    此时我的pip已安装目录为:

    C:Usersvincent>pip list --format=legacy
    beautifulsoup4 (4.6.0)
    certifi (2018.1.18)
    chardet (3.0.4)
    Django (2.0.4)
    html5lib (1.0.1)
    idna (2.6)
    mysqlclient (1.3.12)
    pip (9.0.3)
    pytz (2018.3)
    requests (2.18.4)
    setuptools (28.8.0)
    six (1.11.0)
    urllib3 (1.22)
    webencodings (0.5.1)
    

    注意仅有一个mysqlclient

    1.2 验证环境配置成功
    一切就绪之后,由于Django默认是sqlite3,还需要配置数据库,配置如下:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'django_day_00',
            'USER':'安装mysql时设置的账号',
            'PASSWORD':'安装mysql时设置的密码',
            'HOST':'localhost'
        }
    }
    

    运行python manage.py runserver 即可

    2. 跑一个页面

    2.1 浏览器发送请求,需要设置响应的url:

    #django_startdjango_starturls.py
    from apps.message import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('login/', views.get_login),
    ]
    

    2.2 url已经有了,需要设置映射的函数:

    #django_startappsmessageviews.py
    from django.shortcuts import render
    
    def get_login(request):
        return render(request,'message_login.html')
    

    2.3 页面的资源设置
    可以在每个单独的应用下建立一个static目录,也可以在根目录下建立一个static,在应用多的情况下,显然后者会更好。在根目录下建立一个static文件夹,设置找寻路径:

    STATIC_URL = '/static/'
    #新添加
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static"),
    ]
    

    templates的设置的原因也同理,设置方式如下:

    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.4 跑起来
    浏览器中输入 http://localhost:8000/login/ 即可看到效果。

  • 相关阅读:
    .NET中操作SQLite
    Visual Studio 快捷键
    ADO.NET入门教程(三) 连接字符串,你小觑了吗?
    ADO.NET入门教程(二)了解.NET数据提供程序
    Xaml语法概述及属性介绍
    Csharp日常笔记
    C#基础
    PAT-L3-球队“食物链”-dfs-状压-set
    TOJ1302: 简单计算器 && TOJ 4873: 表达式求值&&TOJ3231: 表达式求值
    TOJ 3973 Maze Again && TOJ 3128 简单版贪吃蛇
  • 原文地址:https://www.cnblogs.com/leihui/p/8763200.html
Copyright © 2011-2022 走看看