Django 具有的特点
- 功能完善、要素齐全:该有的、可以没有的都有,常用的、不常用的 工具都用。
- 完善的文档:经过十多年的发展和完善,Django有广泛的实践经验和 完善的在线文档。
- 强大的数据库访问组件:Django的Model层自带数据库ORM组件。 当然你也可以使用其它访问技术,比如SQLALchemy。
- 灵活的URL映射:Django使用正则表达式管理URL映射,灵活性高。
- 丰富的Template模板语言:类似jinjia模板语言,不但 原生功能丰富,还可以自定义模板标签。
- 自带免费的后台管理系统:只需要通过简单的几行配置和代码就可以 实现一个完整的后台数据管理控制平台。
- 完整的错误信息提示:在开发调试过程中如果出现运行错误或者异 常,Django可以提供非常完整的错误信息帮助定位问 题。
Django与MVC
Django对传统的MVC设计模式进行了修改,将视图分成View模块和Template模块两部分,将动态的逻辑处理与静态的页面展现分离开。
而Model采用了ORM技术,将关系型数据库表抽象成面向对象的Python类,将表操作转换成类操作,避免了复杂的SQL语句编写。MTV和MVC本质上是一样的。
- 模型(Model):和MVC中的定义一样
- 模板(Template):将数据与HTML语言结合起来的引擎
- 视图(View):负责实际的业务逻辑实现
Django的MTV模型组织可参考右图所示:
一个小的知识点:
location.reload(); // 页面刷新
创建子应用
1,在Tools 中点击 run manager.py
输入:
startapp + 名字
创建成功
2,进行配置
在settings 大概40行左右的位置,添加
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'上述添加的子应用的名字'
]
创建超级用户
createsuperuser
然后输入用户名和密码
2,登录:http://127.0.0.1:8000/admin/输入设置的用户名和密码
3,在settings.py 中 更改语言 ,
LANGUAGE_CODE = 'zh-Hans'
4, 将model层写的数据类加载到页面中,在admin.py中。
from django.contrib import admin
from djangoproject.models import Teacher
class TeacherAdmin(admin.ModelAdmin):
list_display = ('t_id','pwd','t_name','good_subject','t_introduce','t_honor','t_age','t_background','t_motto','t_img')
admin.site.register(Teacher, TeacherAdmin)
5,在app.py修改应用的名字
from django.apps import AppConfig
class DjangoprojectConfig(AppConfig):
name = 'djangoproject'
verbose_name = '图书管理系统' #应用的名字
6,在model.py中 修改模型的名称
注意:calss Meta 要写到对应模型的里面。
from django.db import models
# Create your models here.
class Publish(models.Model):
nid = models.AutoField(primary_key=True)
name = models.CharField('出版社名称 ',max_length=20,null=False) #给字段添加中文名字
city = models.CharField('城市',max_length=30)
email = models.CharField('联系方式',max_length=40)
def __str__(self):
return self.name #name与上面的name是对应的。
class Meta:
verbose_name = '出版社名称' #数据表添加中文名字
verbose_name_plural ='出版社'
连接mysql数据库
1,下载pymysql包
2,在__init__.py 中输入
import pymysql
pymysql.install_as_MySQLdb() #将pymysql 按照 pymysql 的模式来使用。
3、在settings中更改数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb', //数据库库名
'USER':'root', //数据库用户名
'PASSWORD':'123456', // 数据库密码
'HOST':'localhost',
'PORT':'3306'
}
}
4,在model.py 中实例化数据表,例如
class Goodes(models.Model):
goods_no = models.AutoField(primary_key=True,auto_created=True)
goods_name = models.CharField(null=False, unique=True, max_length=20)
goods_price = models.FloatField(null=False)
5,自动创建数据表
在 Terminal 中时输入:
python manage.py makemigrations
python manage,py migrate
静态文件的配置
现在最外层创建文件static文件夹
在setting 中最后面配置:
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), '/static/', ]
而在H5中引用:
{% load static %}
<img src="{% static 'image/1501010045.JPG' %}" alt="照片">
<link rel="stylesheet" href="{% static 'css/qfbase.css' %}">
如若还是不行
1,首先准备favicon.ico 图片,网上有很多转换的工具,放到static/images中,在H5中引用这张图片。