python django web项目的构建步骤(一)

简介:

Django

一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。

1、安装好python django(这步略过,安装过程自行完成,网上安装步骤很多),安装的版本不同而生成的文件目录也不同,这里用的是1.6.5的版本的django;

1
2
[root@node3 ~] # django-admin.py --version
1.6.5

2、创建django项目

1
2
3
4
5
6
[root@node3 python] # django-admin.py startproject mysite2
[root@node3 python] # cd mysite2/
[root@node3 mysite2] # ll
total 8
-rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
drwxr-xr-x. 2 root root 4096 Jun  9 22:20 mysite2

以上的是1.6.5版本生成的一个manage.py和一个目录mysite2,如是1.3.7的版本的话生成的是以下的格式:

1
2
3
4
5
6
7
[root@node1 python] # cd mysite2/
[root@node1 mysite2] # ll
total 16
-rw-r--r--. 1 root root    0 Jun 10 10:19 __init__.py
-rw-r--r--. 1 root root  503 Jun 10 10:19 manage.py
-rw-r--r--. 1 root root 5203 Jun 10 10:19 settings.py
-rw-r--r--. 1 root root  568 Jun 10 10:19 urls.py

3、这里我们还是以1.6.5的版本为例说明问题,如果我们需要连接数据库,那我们需要去修改mysite2文件夹里的settings.py文件;

1
2
3
4
5
6
7
8
9
10
11
12
DATABASES = {
       'default' : {
           'ENGINE' 'django.db.backends.mysql' ,   # 需要连接什么数据库
           'NAME' 'mysite2' # 需要连接的数据库名
           'USERNAME' 'root' ,     # 连接数据库的用户名
           'PASSWORD' 'linux' ,    # 连接数据库的密码
           'PORT' '3306' ,         # 端口
       }
  }
我们还可以改一下时区和使用的语言
LANGUAGE_CODE =  'en-zh'    # 中文
TIME_ZONE =  'Asia/Shanghai'    # 亚洲,上海

4、之后就可以启动django了,切换到manage.py目录文件下,如不写0.0.0.0:8000(监听所有地址),那默认是监听127.0.0.1:8000这个套接字;

1
[root@node3 mysite2] # python manage.py runserver 0.0.0.0:8000

5、然后就可以在页面上访问了,用本机的地址加端口就可以访问:

1
http: //10 .17.1.151:8000/

wKioL1V37bySBlcSAAFK4H3r4GY139.jpg

################  以下是新建一个APP的简单设置步骤  ############

1、使用manage.py创建一个APP;

1
2
3
4
5
6
[root@node3 mysite2] # python manage.py startapp myapp
[root@node3 mysite2] # ll
total 12
-rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
drwxr-xr-x. 2 root root 4096 Jun 10 01:47 myapp
drwxr-xr-x. 2 root root 4096 Jun  9 23:29 mysite2

2、为了使 Django 认识到新应用程序的存在,还需要向 settings.py 文件中的 INSTALLED_APPS 添加一个条目。

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = (
      'django.contrib.admin' ,
      'django.contrib.auth' ,
      'django.contrib.contenttypes' ,
      'django.contrib.sessions' ,
      'django.contrib.messages' ,
      'django.contrib.staticfiles' ,
      'myapp' ,  添加新建的app
  )

3、切换到myapp中,创建一个模型,也就是在moduls.py文件中新建一个类,做个类代表对应数据库中的一张表;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 myapp] # vim models.py
from django.db  import  models
 
class Teacher(models.Model):
     name = models.CharField(max_length=30)
     gender = models.CharField(max_length=5)
     age = models.CharField(max_length=5)
     job = models.CharField(max_length=50)
 
     def __unicode__(self):
         return  "%s, %s, %s, %s"  % (self.name, self.gender, self.age, self.job)
 
class Student(models.Model):
     name = models.CharField(max_length=30)
     gender = models.CharField(max_length=5)
     age = models.CharField(max_length=5)
     course = models.CharField(max_length=50)
 
     def __unicode__(self):
         return  "%s, %s, %s, %s"  % (self.name, self.gender, self.age, self.course)

##  创建完所需要的表之后就可以使用下面命令进行数据库的同步了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@node3 mysite2] # python manage.py syncdb
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table myapp_teacher
 
You just installed Django 's auth system, which means you don' t have any superusers defined.
Would you like to create one now? ( yes /no ):  yes
Username (leave blank to use  'root' ):  # admin的用户帐号
Email address: abc@ test .com
Password:  # 这个设置是登录admin是的登录密码
Password (again): 
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

##  登录mysql数据库就可以查看到生成的表了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
MariaDB [(none)]> use mysite2;
Database changed
MariaDB [mysite2]> show tables;
+----------------------------+
| Tables_in_mysite2          |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_session             |
| myapp_student              |    # 下面这两个是我们需创建的表student和teacher
| myapp_teacher              |
+----------------------------+
11 rows  in  set  (0.00 sec)
 
MariaDB [mysite2]> desc myapp_student;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     | NULL    |                |
| gender | varchar(5)  | NO   |     | NULL    |                |
| age    | varchar(5)  | NO   |     | NULL    |                |
| course | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows  in  set  (0.10 sec)
 
MariaDB [mysite2]> desc myapp_teacher;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     | NULL    |                |
| gender | varchar(5)  | NO   |     | NULL    |                |
| age    | varchar(5)  | NO   |     | NULL    |                |
| job    | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows  in  set  (0.00 sec)

4、到这里我们可以通过django的admin管理界面来添加,删除,修改表中的信息,即在myapp目录中的admin.py添加一个class类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 myapp] # vim admin.py
from myapp.models  import  Student, Teacher
class TeacherAdmin(admin.ModelAdmin):
     list_display = (
         'name' ,
         'gender' ,
         'age' ,
         'job' ,
     )
 
class StudentAdmin(admin.ModelAdmin):
     list_display = (
         'name' ,
         'gender' ,
         'age' ,
         'course' ,
     )
 
admin.site.register(Student, StudentAdmin)
admin.site.register(Teacher, TeacherAdmin)

这个保存之后就可以在地址栏中输入http://10.17.1.151:8000/admin来访问到了,在这里就直接可以操作数据库表。

wKiom1V37R_DvAdBAAEkpLVSCdw452.jpgwKioL1V37xmC_TGgAAJcpReuEH4566.jpgwKioL1V37yzRew6xAAFZUWQTDx4261.jpg










本文转自 wei0164 51CTO博客,原文链接:http://blog.51cto.com/tanxw/1660453,如需转载请自行联系原作者
目录
相关文章
|
1天前
|
监控 Serverless 持续交付
阿里云云效产品使用问题之如何让流水线支持构建 flutter web 应用到 OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1天前
|
存储 前端开发 JavaScript
探索Django:打造高效、可扩展的Web应用(中)
探索Django:打造高效、可扩展的Web应用(中)
5 1
|
1天前
|
开发框架 中间件 PHP
Laravel框架:优雅构建PHP Web应用的秘诀
**Laravel 框架简介:** Laravel是PHP的优雅Web开发框架,以其简洁语法、强大功能和良好开发者体验闻名。它强调代码的可读性和可维护性,加速复杂应用的构建。基础步骤包括安装PHP和Composer,然后运行`composer create-project`创建新项目。Laravel的路由、控制器和Blade模板引擎简化了HTTP请求处理和视图创建。模型和数据库迁移通过Eloquent ORM使数据库操作直观。Artisan命令行工具、队列、事件和认证系统进一步增强了其功能。【6月更文挑战第26天】
7 1
|
6天前
|
JSON API 数据库
Python使用Quart作为web服务器的代码实现
Quart 是一个异步的 Web 框架,它使用 ASGI 接口(Asynchronous Server Gateway Interface)而不是传统的 WSGI(Web Server Gateway Interface)。这使得 Quart 特别适合用于构建需要处理大量并发连接的高性能 Web 应用程序。与 Flask 类似,Quart 也非常灵活,可以轻松地构建 RESTful API、WebSockets、HTTP/2 服务器推送等。
|
3天前
|
中间件 开发者 C++
Django中间件探索:揭秘中间件在Web应用中的守护角色与实战应用
Django中间件探索:揭秘中间件在Web应用中的守护角色与实战应用
|
3天前
|
前端开发 数据库 开发者
构建高效后端:Django框架在Web开发中的深度解析
**Django框架深度解析摘要** Django,Python的高级Web框架,以其快速开发和简洁设计备受青睐。核心特性包括Model-Template-View架构、ORM、模板引擎和URL路由。通过创建博客应用示例,展示从初始化项目、定义模型、创建视图和URL配置到使用模板的流程,体现Django如何简化开发,提高效率。其强大功能如用户认证、表单处理等,使Django成为复杂Web应用开发的首选。学习Django,提升Web开发效率。【6月更文挑战第24天】
33 1
|
5天前
|
安全 前端开发 Java
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
12 1
|
7天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
23小时前
|
前端开发 JavaScript Java
使用Spring Boot和Thymeleaf构建动态Web页面
使用Spring Boot和Thymeleaf构建动态Web页面
|
1天前
|
SQL 关系型数据库 数据库
探索Django:打造高效、可扩展的Web应用(上)
探索Django:打造高效、可扩展的Web应用(上)
5 0