Django搭建
目录 - 目录
- 一、安装Django
- 二、创建Django工程
- 1,使用django-adminy创建一个python web项目。
- 2.创建子应用
- 3.子应用目录说明
- 4.启动Django 自带的webserver
- 三、Django import / export实现数据库导入导出
- 四、Django默认不支持https
- 五、Django安装sslserver以支持https
- 1,使用django-adminy创建一个python web项目。
- 2.创建子应用
- 3.子应用目录说明
- 4.启动Django 自带的webserver
一、安装Django
pip install Django==3.2.6 #方法一 先确保安装pip,再进行一下操作
sudo apt install python3-django #方法二
查看是否安装成功
>>> import django
>>> django.get_version()
二、创建Django工程
1,使用django-adminy创建一个python web项目。
例如我们创建的项目名称为mydodo_web,
创建自己的web项目的目录
2.创建子应用
python manage.py startapp 子应用名称 #manage.py是创建工程时自动生成的管理文件
3.子应用目录说明
- admin.py 文件跟网站的后台管理站点配置相关。
- apps.py 文件用于配置当前子应用的相关信息。
- migrations 目录用于存放数据库迁移历史文件。
- models.py 文件用户保存数据库模型类。
- tests.py 文件用于开发测试用例,编写单元测试。
- views.py 文件用于编写Web应用视图。
4.启动Django 自带的webserver
cd mydodo_web // 进入我们的工程目录下
python manage.py runserver //启动Django 自带的webserver
会提示 server已经成功启动了,在浏览器中访问http://127.0.0.1:8000应该就会看到显示有“It worded!”的Django的欢迎页面了。
三、Django import / export实现数据库导入导出
使用django-import-export库,导入导出数据,支持csv、xls、json、html等格式
官网:http://django-import-export.readthedocs.io/en/latest/installation.html
1、安装django-import-export
pip install django-import-export
2、配置settings.py
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'import_export',
)
3.将所有STATICFILES_DIRS中的所有文件夹中的文件及各APP中static中的文件都复制到 静态文件根目录下:STATIC_ROOT
python manage.py collectstatic
4、models.py 建立model
class Medical(models.Model):
# Field name made lowercase.
item_no = models.AutoField(db_column='Item_no', primary_key=True)
# Field name made lowercase.
check_date = models.DateField(
db_column='Check_date', blank=True, null=True)
# Field name made lowercase.
hospital = models.CharField(db_column='Hospital', max_length=32)
# Field name made lowercase.
item_cn = models.CharField(db_column='Item_cn', max_length=32)
# Field name made lowercase.
item_en = models.CharField(
db_column='Item_en', max_length=32, blank=True, null=True)
# Field name made lowercase.
check_result = models.FloatField(
db_column='Check_result', blank=True, null=True)
# Field name made lowercase.
unit = models.CharField(
db_column='Unit', max_length=32, blank=True, null=True)
# Field name made lowercase.
reference = models.CharField(
db_column='Reference', max_length=32, blank=True, null=True)
# Field name made lowercase.
normal = models.IntegerField(db_column='Normal', blank=True, null=True)
class Meta:
managed = False
db_table = 'medical'
5、在admin.py 创建Resource、对应的Admin
注意:在admin.py里使用ImportExportModelAdmin,而不是ModelAdmin
class MedicalResource(resources.ModelResource):
class Meta:
model = models.Medical
fields = ('check_date', "hospital", "item_cn", "item_en",
"check_result", "unit", "reference", "normal")
export_order = ('check_date', "hospital", "item_cn",
"item_en", "check_result", "unit", "reference", "normal")
class MedicalAdmin(ImportExportModelAdmin):
list_display = ('check_date', "hospital", "item_cn", "item_en", "check_result", "unit", "reference",
"normal") # 重写属性list_display,来设置展示的表字段
# 重写属性search_fields,把表字段name的值当做搜索条件
search_fields = ('check_date', "hospital", "item_cn", "item_en", "normal")
list_filter = ('check_date', "hospital", "item_cn", "item_en", "normal")
date_hierarchy = 'check_date'
resource_class = MedicalResource
四、Django默认不支持https
1)以python manage.py runserver启动应用,是不支持https的,报错如下错误:
You’re accessing the development server over HTTPS, but it only supports HTTP
2)settings.py中设置SECURE_SSL_REDIRECT = True此时,http请求自动跳转到https,http此时django能正确访问。如果直接请求HTTPS时会报错如下错误:
You’re accessing the development server over HTTPS, but it only supports HTTP.
五、Django安装sslserver以支持https
- 安装sslserver插件
pip install django-sslserver
- 在settings.py中添加配置
INSTALLED_APPS = (
...
"sslserver",
...
)
- 自带证书启动django应用
python manage.py runsslserver
- 指定证书启动django应用
python manage.py runsslserver --certificate /path/to/certificate.crt --key /path/to/key.key 0.0.0.0:8000