#本文欢迎转载,转载请注明出处和作者。
1、Django配置
前面已经将开发环境准备好了,可以开始进行静态网页的开发。
先介绍一下django的目录与文件结构,有几个文件需要重点掌握的:
settings.py #用来配置django项目的基本信息的,包括连接的数据库的数据库实例名,端口,用户名密码等。
urls.py #用来记录路由数据的,这个不是网络专业的ip route路由的意思,是例如你访问127.0.0.1:8000/index,后面的index路由到什么函数来处理的意思。
views.py #用来编写业务逻辑的,所谓业务逻辑,其实就是函数,上面的路由会根据urls调用views的函数
models.py #是用来创建数据库表的,包括表名,字段,字段的数据类型等
另外还有2个目录需要掌握:
templates #用来放置静态页面的
static #用来放置css、js、img(图片)等文件的
初始化配置
项目初始化建立后,最主要的仅有settings.py与urls.py。
另外,由于django是可以支持模块化开发的,因此在进行具体的业务逻辑开发前,需要创建app(相当于功能模块),在下方terminal窗口输入如下命令:
django-admin startapp stumgr
自动创建了相关的app目录,里面models.py与views.py是最重要的。
models.py是用来规定数据库表以及具体字段。
views.py是用来编写具体的业务逻辑的。
另外,静态页面文件一般要求放置在templates目录下,js、css等文件要求放置在static目录下,这两个目录也需要手动创建。
创建后,django是无法使用该两个目录的,所以还需要修改settings.py的配置。
在INSTALLED_APPS下面,安装刚创建的app。
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','stumgr',]
禁用CSRF跨站***阻止,在前面加#号。
MIDDLEWARE =[#'django.middleware.csrf.CsrfViewMiddleware',]
修改templates的目录,因为windows系统问题,需要将/替换为,才能正常工作。templates是存放html静态文件的默认位置。
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates'.replace('','/'))]
修改数据库配置,原为
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}}
修改为(按照实际修改)
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME':'stumgr','HOST':'localhost','USER':'root','PASSWORD':'1qaz!QAZ','PORT':3306,}
最后settings最底下增加static目录配置,这个是配置css、js等静态文件的默认位置的。
STATIC_URL = '/static/'STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'.replace('','/')),)
到数据库创建stumgr数据库
在terminal,运行,进行数据库的初始化。
python manage.py makemigrations
如果已经提前安装了mysqlclient,会顺利进行,否则会报错,提示 Error loading MySQLdb module。
【python2.7】
如果是python2.7用户,可以安装pymysql。
点击files->settings->可以安装扩展的包,由于django需要与mysql数据库交互,请点击+,然后安装pymysql
修改school目录下的__init__.py
import pymysqlpymysql.install_as_MySQLdb()
【python3】
开发机安装mysqlclient
pip install mysqlclient
并且创建工程的时候,需要勾选:
重新运行命令
python manage.py makemigrationspython manage.py migrate
提示数据库表创建完成,查看数据库,发现数据库表已经自动创建成功。
在templates目录下创建index.html文件,填写”HelloWorld“
然后需要编辑school下面的urls.py文件,在里面增加对stumgr的urlspy的包含。
这里的意思是,域名后面任意的后缀,都交给stumgr下面的urls文件来解析路由。
from django.conf.urls import url,includefrom django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^',include('stumgr.urls')),]
然后再stumgr下面手动增加一个urls.py文件,将school下面的urls.py文件内容复制粘贴,再进行修改。
这里才是每个url后缀,真正对应views里面哪个函数的路由。^与$是正则表达式符号,^表示以XX开头,$表示以XX结尾。^$表示中间什么都没有,就是127.0.0.1:8000后面什么都没有跟,就匹配这条路由。^index/表示匹配127.0.0.1:8000/index/这条url,后面跟的是对应调用views里面哪个函数。
from django.conf.urls import urlfrom stumgr.views import *urlpatterns = [url(r'^$', index),url(r'^index/',index),]
然后编写views.py,import的地方,使用默认的render,
创建函数index,定义函数需要执行什么业务逻辑,暂时仅作页面返回。
from django.shortcuts import render# Create your views here.def index(request):return render(request,'index.html')
runserver运行web服务。
python manage.py runserver
打开浏览器访问http://localhost:8000以及http://localhost:8000/index/尝试,如果能够成功访问,则证明一切配置正常。
2、HTML简介
2.1 HTML标签简介
html叫做超文本标记语言,与一般的编程语言不一样,可以理解为,它就是一种告诉浏览器每种页面元素怎么摆放的语言就可以了,简单介绍一下常用的html标签,更多的html介绍可以参考w3school的教程。
W3Schoot HTML教程
<h></h>标题
<P></p>段落
<img src="">图片标签
<a href+"">超链接标签
<table></table>表格标签
<tr></tr>表格行
<th></th>表格标题
<td></td>表格列
<div></div>区域标签
<title></title>页面标签的标题
<header></header>html头,一般书写编码方式,title,引入css、js等
<body></body>页面具体正文内容
2.2 编写第2个html页面
在templates下面创建一个temp.html文件,简单利用一下上面介绍的标签,编写一个页面进行测试。
2.2.1创建html页面
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>这是第一个HTML页面</title></head><body><h1>这是我的网站大标题</h1><h2>这是我的网站子标题</h2><div><p1>这是第一行内容</p1></div><div><p2>这是第二行内容</p2></div><table border="1"><tr><th>第一列</th><th>第二列</th><th>第三列</th></tr><tr><td>1.1</td><td>1.2</td><td>1.3</td></tr></table><div><a href="/index/">跳转到index</a></div><div><img src="/static/images/timg.jpg" width="640" height="480"></div></body></html>
其中<img>标签中,需要将测试图片放到/static/images/文件夹下,如果images文件夹不存在可以自行创建,文件名按照实际图片名修改。
点击<a>标签,应该能够自动跳转index页面(Hello World页面)。
2.2.2URL添加路由
编辑stumgr下面的urls.py文件,添加路由,相当于告知django,用户访问127.0.0.1:8000/temp/这条url,调用什么函数。
urlpatterns = [......url(r'^temp/', temp),]
2.2.3views添加函数
添加具体的函数,这里只是简单返回静态页面,所以函数基本上没有什么具体内容。
def temp(request):return render(request,'temp.html')
2.2.4访问测试
至此,我们已经掌握了如何做纯html网页页面的开发了,总结一下:
1)在templates目录下面创建html文件,然后在html文件下面以html语言编写需要的内容。
2)编辑app下面的urls.py,增加url路由,并且指定用views里面什么函数响应。
3)编辑views,编写具体的函数。
然后静态页面就能够正常访问了。
django不修改数据库创外键_【实战演练】Python+Django网站开发系列03-Django初始配置与静态Index页面开发...