Herkese merhaba öncelikle , Ben Chatgpt ye bir kod yazdırmak istedim ve yazdırdığım kod ile istediğim url den veri alışverişini rahat yapabilmek bunu yapabilmek içinse sanki kendi sitemi yapıyormuş gibi gösterdim ve bana şu kodları verdi. Bunu geliştirip belirli url veya ip ile veri çekmek ne kadar mümkün sizce veya fikir , öneriniz var mı bu tarz ?
Python:
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# Veritabanı yapılandırması
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
# Veritabanı modeli
class Item(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
description = db.Column(db.String(200), nullable=True)
# Veritabanını başlatma
with app.app_context():
db.create_all()
# Ana sayfa
@app.route('/')
def home():
return "Welcome to the Flask API!"
# Tüm öğeleri alma
@app.route('/items', methods=['GET'])
def get_items():
items = Item.query.all()
return jsonify([{'id': item.id, 'name': item.name, 'description': item.description} for item in items])
# Yeni öğe ekleme
@app.route('/items', methods=['POST'])
def add_item():
data = request.get_json()
new_item = Item(name=data['name'], description=data.get('description'))
db.session.add(new_item)
db.session.commit()
return jsonify({'id': new_item.id, 'name': new_item.name, 'description': new_item.description}), 201
# Belirli bir öğeyi alma
@app.route('/items/<int:item_id>', methods=['GET'])
def get_item(item_id):
item = Item.query.get_or_404(item_id)
return jsonify({'id': item.id, 'name': item.name, 'description': item.description})
# Belirli bir öğeyi güncelleme
@app.route('/items/<int:item_id>', methods=['PUT'])
def update_item(item_id):
item = Item.query.get_or_404(item_id)
data = request.get_json()
item.name = data['name']
item.description = data.get('description', item.description)
db.session.commit()
return jsonify({'id': item.id, 'name': item.name, 'description': item.description})
# Belirli bir öğeyi silme
@app.route('/items/<int:item_id>', methods=['DELETE'])
def delete_item(item_id):
item = Item.query.get_or_404(item_id)
db.session.delete(item)
db.session.commit()
return '', 204
if __name__ == '__main__':
app.run(debug=True)