——————————————————————
Django系列笔记:
一、开发环境搭建
二:添加第一个应用
三:配置Mysql数据库1
四:配置Mysql数据库2
五:模型models
……
——————————————————————
一、前言
前一个笔记介绍了,如何搭建Django的开发环境,并且创建一个属于自己的django项目,详情请看Python的开源服务端一:Django开发环境搭建
前提都已经准备好了,忍不住开始Django之旅啦。
二、添加你的应用
在之前的基础上,我来场景属于自己的app
1.. 创建新的app:
创建完项目后,在mysite目录下创建一个名为HelloDjango的app:
python manage.py startapp HelloDjango
创建完成后,查看目录,目录结构如下:
2.png
这些目录和文件的用处是:
- 最外层的
mysite/
根目录只是你项目的容器, 根目录名称对Django没有影响,你可以将它重命名为任何你喜欢的名称。manage.py
: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin and manage.py 获取所有manage.py
的细节。- 里面一层的
mysite/
目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如mysite.urls
).mysite/__init__.py
:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识。mysite/settings.py
:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django settings 了解细节。mysite/urls.py
:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL dispatcher 文档来获取更多关于 URL 的内容。mysite/asgi.py
:作为你的项目的运行在 ASGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。mysite/wsgi.py
:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。
现在,我们再次启动 Web 服务器,执行命令:
python manage.py runserver
测试访问本机的 admin,使用浏览器访问:http://127.0.0.1:8000/admin
3.png这里需要账号和密码才能登陆,后面会介绍如何添加管理员,添加后,就可以登陆了。
创建完成后,用pycharm打开整个工程mystite,方便编码。
在mysite/mysite目录结构中找到setting.py,打开并找到INSTALLED_APPS,把我们的app ‘HelloDjango’ 添加到最底下
4.pngOK,添加完毕
2. 设计你的模型:
Django一个比较方便的地方是它附带了一个可以用Python代码描述数据库布局的对象关系映射器,数据模型语法提供了许多丰富的方法来展现你的模型。
创建一个包含title,content,pub time的模型
打开models.py,添加以下代码:
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=32,default='Title')
content = models.TextField(null=True)
pub_time = models.DateTimeField(auto_now_add=True)
创建完成后同步数据库:
powershell 执行以下命令
python manage.py makemigrations
python manage.py migrate
并在admin.py中注册:
打开admin.py,添加以下代码:
from django.contrib import admin
from .models import Article
admin.site.register(Article)
OK,一个简单的数据模型就这样添加完成,是否非常简单。
3. Admin 管理工具
Django 最强大的部分之一是自动生成的Admin 界面。它读取模型中的元数据来提供一个强大的、生产环境就绪的界面,使内容提供者能立即用它向站点中添加内容。
添加管理员账号
powershell 执行以下命令,会引导你完成管理账号的添加
python manage.py createsuperuser
通过127.0.0.1:8000/admin访问Admin界面,用刚才的管理员账户登录。
强大的 Python web 框架你可在settings.py中将Admin界面的语言和时间设置为中国
LANGUAGE_CODE = ‘zh-hans’
TIME_ZONE = ‘Asia/Shanghai’
4. 前端页面
Django的前端页面保存在Templates文件夹中,在HelloDjango中新建Templates文件夹并编写自己的前端代码。图片等资源则需要保存在static文件夹中。
配置url与views
我们可以为每个app单独配置url,
- 首先配置mysite中的urls.py
from django.contrib import admin
from django.urls import path
from django.urls import include
urlpatterns = [
path('admin/', admin.site.urls),
path('HelloDjango/',include('HelloDjango.urls')),
]
- 在HelloDjango中新建urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index),
]
- 在views.py中
from django.shortcuts import render
from . import models
def index(request):
return render(request,'index.html')
- 在 Templates下,添加index.html文件,打开写入以下h5代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello,Django!</title>
<style type="text/css">
html {
width: 100%;
height: 100%;
overflow: hidden;
font-style: sans-serif;
}
body {
width: 100%;
height: 100%;
font-family: 'Open Sans', sans-serif;
margin: 0;
background-color: #FF8080;
}
#login {
position: absolute;
top: 50%;
left: 50%;
margin: -150px 0 0 -150px;
width: 300px;
height: 300px;
}
#login h1 {
color: #fff;
text-shadow: 0 0 10px;
letter-spacing: 1px;
text-align: center;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
input {
width: 278px;
height: 18px;
margin-bottom: 10px;
outline: none;
padding: 10px;
font-size: 13px;
color: #fff;
text-shadow: 1px 1px 1px;
border-top: 1px solid #312E3D;
border-left: 1px solid #312E3D;
border-right: 1px solid #312E3D;
border-bottom: 1px solid #56536A;
border-radius: 4px;
background-color: #2D2D3F;
}
.but {
width: 300px;
min-height: 20px;
display: block;
background-color: #4a77d4;
border: 1px solid #3762bc;
color: #fff;
padding: 9px 14px;
font-size: 15px;
line-height: normal;
border-radius: 5px;
margin: 0;
}
</style>
</head>
<body>
<div id="login">
<h1>Hello,My First Django!</h1>
</div>
</body>
</html>
- 查看自己编写的index.html的内容
powershell 执行命令,启动 Django 的 Web 服务器
python manage.py runserver
此时访问http://127.0.0.1:8000/HelloDjango则会显示:
到这里,我们就能看到一个完整的应用了。
三. 加载数据库中的内容:
前面,已经添加数据模型,与首页,那么我们该如何使用数据模型去添加数据,二号使用数据在页面显示呢
def Article(request,Article_id):
article = models.Article.objects.get(pk=Article_id)
return render(request,'article.html',{'article':article})
- 在urls.py中添加:
url('article/(?P<Article_id>[0-9]+)$', views.Article)
- 在 Templates下,添加Ariticle.html文件
在之前index.html 的基础上,修改body,做出以下调整
<body>
<div id="login">
<h1>Hello,My First Django!</h1>
<div>
<label class="required" for="id_title">{{article.title}}</label>
</div>
<label class="required" for="id_title">{{article.content}}</label>
</div>
</body>
通过{{article.title}},{{article.content}}可以分别加载出文章的标题,内容(对应自己创建的模型)
完成后,通过访问‘127.0.0.1:8000/HelloDjango/article/’ + 文章的id 就可以访问指定的文章
如127.0.0.1:8000/HelloDjango/article/1 访问新建的第一篇文章:
7.png
四、结语
如此,轻松简单就能把一个前后端的应用给整起来了,还在为后台服务开发烦恼吗,赶紧用起来把。
由于时间的原因,这里就简单介绍Django的一些非常基础的环境及应用,以后有时间会抽取更多的时间来,深入的学习介绍,敬请期待。
网友评论