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:\workSpace\python\django_start>python  manage.py runserver
...
Traceback (most recent call last):
File "D:\usr\Python35-32\lib\site-packages\django\db\backends\mysql\base.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:\Users\vincent>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_start\django_start\urls.py
from apps.message import views urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.get_login),
]

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

#django_start\apps\message\views.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/ 即可看到效果。

Django - day00 第一个页面的更多相关文章

  1. pycharm+Django启动我的第一个页面(Django二)

    打开pycharm(社区版),File->open 找到由命令 django-admin startproject mysite 在D盘下创建的文件夹mysite mysite通过文件资源管理器 ...

  2. Django入门第一步:构建一个简单的Django项目

    Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...

  3. Yii2.0学习笔记:第一个页面Saying Hello

    Controller目录下创建TestController.php 复制下面代码,yii跟tp一样,全程命名空间 <?php namespace app\controllers; use yii ...

  4. Django实现自定义template页面并在admin site的app模块中加入自定义跳转链接

    在文章 Django实现自定义template页面并在admin site的app模块中加入自定义跳转链接(一) 中我们成功的为/feedback/feedback_stats/路径自定义了使用tem ...

  5. ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第二篇:第一个页面

    摘要      本文首先一步一步完成Demo的第一个页面——首页.然后根据实现过程,说明一下其中用到的与ASP.NET MVC相关的概念与原理. 让第一个页面跑起来      现在,我们来实现公告系统 ...

  6. 浅入深出Vue:第一个页面

    今天正式开始入门篇,也就是实战了~ 首先我们是要做一个博客网站,UI 框架采用江湖传闻中的 ElementUI,今天我们就来利用它确定我们博客网站的基本布局吧. 准备工作 新建一个vue项目(可以参考 ...

  7. django xadmin中logout页面在chrome浏览器中点击关闭页面无效

    问题现象 django xadmin中logout页面在chrome浏览器中点击关闭页面无效,无法关闭相应的页面 问题原因 高版本的chrome等浏览器不支持在window.colse()的写法 问题 ...

  8. django 从零开始 4 404页面和500页面设置

    在视图函数中定义两个 函数 分别对应404 个500页面 (自定义html内容吧,这里只是展示) 在template页面指向自己定义的404.html和500.html页面 在项目的urls中设置 h ...

  9. CI4框架应用四 - 第一个页面

    我们来看一下CI4框架的默认页面是如何实现的. 我们先来认识一下路由文件(app\Config\Routes.php),这个文件非常重要,且功能强大,它定义了URL模式及响应处理方法,我们先看一下这个 ...

随机推荐

  1. Impossible WHERE noticed after reading const tables

    阿里云反馈的慢SQL,执行计划返回如下:Impossible WHERE noticed after reading const tables sql很简单: SELECT * FROM deposi ...

  2. Many-to-many relationships in EF Core 2.0 – Part 4: A more general abstraction

    In the last few posts we saw how to hide use of the join entity from two entities with a many-to-man ...

  3. JQuery手写一个简单的分页

    效果图: 大概思路:使用ul进行初始布局,每一次点击事件改变li里的值.完整的代码在gitup上:https://github.com/anxizhihai/Paging.gitcss部分: html ...

  4. LeetCode27.移除元素 JavaScript

    给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  5. 使用 Solr 构建企业级搜索服务器

    最近因项目需要一个全文搜索引擎服务, 在考察了Lucene及Solr后,我们选择了Solr. 本文简要记录了基于Solr搭建一个企业搜索服务器的过程.网上的资料太多千篇一律,也可能版本不同,总之在参照 ...

  6. 导航栏NavigationBar的按钮设置

    有时候在自定义navigationBar的左右按钮的时候,button的图片会显得很大,个人感觉原因有以下几种情况: 1.使用的是UIButton直接加在navigationBar上面 2.自定义了一 ...

  7. 安装 vue-devtools

    1. github下载 vue-devtools: git clone https://github.com/vuejs/vue-devtools 2. node install 安装包 3. vi ...

  8. vue vue-router 完美实现前进刷新,后退不刷新。附scrollBehavior源码解析

    需求:在一个vue的项目中,我们需要从一个列表页面点击列表中的某一个详情页面,从详情页面返回不刷新列表,而从列表的上一个页面重新进入列表页面则需要刷新列表. 而浏览器的机制则是每一次的页面打开都会重新 ...

  9. python爬虫学习笔记(1)

    一.请求一个网页内容打印 爬取某个网页: from urllib import request # 需要爬取的网页 url = "https://mbd.baidu.com/newspage ...

  10. python2x和python3x的一些区别

    python2x:各种按照自己代码习惯给python贡献源码 python3x:重写之后的源码,优美,清晰,简单 版本 打印函数 rang函数 输入函数 python2x print 或 print( ...